std::vector 求交集
时间: 2023-12-14 07:05:04 浏览: 37
std::vector可以使用std::set_intersection函数来求两个向量的交集。在给定的引用中,有一个例子展示了如何使用std::set_intersection函数来求两个向量的交集。首先,需要将两个向量进行排序,然后创建一个目标向量v,大小足够容纳交集元素。使用std::set_intersection函数将两个向量的交集存储在目标向量v中。最后,通过调整目标向量v的大小,将多余的元素删除。下面是一个示例代码:
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> first = {5, 10, 15, 20, 25};
std::vector<int> second = {50, 40, 30, 20, 10};
std::vector<int> v;
std::sort(first.begin(), first.end());
std::sort(second.begin(), second.end());
std::set_intersection(first.begin(), first.end(), second.begin(), second.end(), std::back_inserter(v));
std::cout << "The intersection has " << v.size() << " elements: ";
for (const auto& element : v) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}