我定义了两个 vector :
std::vector<std::pair<int, int> > vec1
和 std::vector<std::pair<int, int> > vec2
.
我想从 vec1
中找到相同的对和 vec2
.
例如,vec1 = {{1,2}, {1,9}, {2,13}, {3,5}}
,
vec2 = {{8, 7}, {4,2}, {2,10}, {1,9}}
.那么结果应该是{{1,9}}
.
我该怎么做?
最佳答案
如果你用 std::sort 对 vector 进行排序,你就可以做到这一点然后使用 std::set_intersection通过以下方式找到它们的共同元素:
std::vector<std::pair<int, int>> v1 {{1,2}, {1,9}, {2,13}, {3,5}};
std::vector<std::pair<int, int>> v2 {{8,7}, {4,2}, {2,10} ,{1,9}};
std::sort(v1.begin(), v1.end());
std::sort(v2.begin(), v2.end());
std::vector<std::pair<int, int>> v_intersection;
std::set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(),
std::back_inserter(v_intersection));
关于c++ - 如何从 C++ 中的两个 vector 中获取相同的对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34001737/