我想比较 vector 和数组。 vector 和 array 中的元素顺序不同,未排序并且可以重复。例如。
下面是一样的:
vector<int> lvector = {5,7,3,1,2,7};
int larray[6] = {3,5,1,7,2,7}
下面,不一样:
vector<int> lvector = {5,7,3,1,2,7,5};
int larray[7] = {3,5,1,7,2,7,3}
和这样的东西也不一样:
vector<int> lvector = {1,1,1,1,2,2};
int larray[6] = {1,1,1,1,1,2}
现在我需要检查 vector 和 array 是否有相同的元素。我不能修改 vector 和数组,但我可以创建一个新容器并将元素从 vector 和数组复制到这个新容器,然后将它们进行比较。我问这个,因为我想以高效的方式做到这一点。谢谢。
最佳答案
这是 soon 提出的变体:
#include <iostream>
#include <unordered_set>
#include <vector>
int main()
{
std::vector<int> v{5, 7, 3, 1, 2, 7};
int arr[] = {3, 5, 1, 7, 2, 7};
std::vector<int> mv(std::begin(v), std::end(v));
std::vector<int> ma(std::begin(arr), std::end(arr));
std::sort(mv.begin(), mv.end()) ;
std::sort(ma.begin(), ma.end()) ;
std::cout << "Are equal? " << (mv == ma) << std::endl;
return 0;
}
关于c++ - 如何比较 vector 和数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30883069/