#include
#include
#include
int main() {
std::set set1 = {1, 2, 3, 4, 5};
std::set set2 = {3, 4, 5, 6, 7};
std::set<int> intersectionSet;
// 使用 std::set_intersection 找到两个集合的交集
std::set_intersection(set1.begin(), set1.end(),
set2.begin(), set2.end(),
std::inserter(intersectionSet, intersectionSet.begin()));
// 输出交集
std::cout << "交集: ";
for (int element : intersectionSet) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
在这个例子中,std::set_intersection将两个集合的交集存储在 intersectionSet 中。请注意,这里使用了 std::inserter 来插入元素到结果集合中。
请注意,std::set_intersection要求输入范围是有序的。如果你的集合不是有序的,你可能需要在进行交集操作之前先对集合进行排序。
如果你使用的是 std::vector 而不是 std::set,同样的操作也可以通过使用 std::set_intersection 以及提前排序来完成。