c++求两个集合的交并差operator
时间: 2024-02-03 08:03:52 浏览: 49
可以使用STL中的set容器来实现两个集合的交、并、差操作。具体实现如下:
```c++
#include <iostream>
#include <set>
using namespace std;
int main()
{
set<int> set1 = {1, 2, 3, 4, 5};
set<int> set2 = {3, 4, 5, 6, 7};
set<int> intersect;
set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), inserter(intersect, intersect.begin()));
cout << "Intersection: ";
for (auto it : intersect)
cout << it << " ";
cout << endl;
set<int> unionset;
set_union(set1.begin(), set1.end(), set2.begin(), set2.end(), inserter(unionset, unionset.begin()));
cout << "Union: ";
for (auto it : unionset)
cout << it << " ";
cout << endl;
set<int> diff;
set_difference(set1.begin(), set1.end(), set2.begin(), set2.end(), inserter(diff, diff.begin()));
cout << "Set1 - Set2: ";
for (auto it : diff)
cout << it << " ";
cout << endl;
diff.clear();
set_difference(set2.begin(), set2.end(), set1.begin(), set1.end(), inserter(diff, diff.begin()));
cout << "Set2 - Set1: ";
for (auto it : diff)
cout << it << " ";
cout << endl;
return 0;
}
```
输出结果:
```
Intersection: 3 4 5
Union: 1 2 3 4 5 6 7
Set1 - Set2: 1 2
Set2 - Set1: 6 7
```
上述代码中,set_intersection、set_union、set_difference都是STL中的算法函数,用于求两个集合的交、并、差操作。其中,insert_iterator用于将结果插入到新的集合中。