c++实现输入整数集合{9 5 4 3 6 7}和{2 4 6 9 },计算出它们进行集合的并、差和交运算后的结果,s1+s2 两个整数集合的并运算 s1-s2 两个整数集合的差运算 s1*s2 两个整数集合的交运算
时间: 2024-02-16 12:00:25 浏览: 30
好的,我来为您解答。
首先,我们可以使用C++中的STL容器set来表示整数集合。将题目中给出的两个集合分别存储在两个set中,代码如下:
```c++
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> s1 = {9, 5, 4, 3, 6, 7};
set<int> s2 = {2, 4, 6, 9};
// 输出集合
cout << "s1: ";
for (auto it = s1.begin(); it != s1.end(); it++) {
cout << *it << " ";
}
cout << endl;
cout << "s2: ";
for (auto it = s2.begin(); it != s2.end(); it++) {
cout << *it << " ";
}
cout << endl;
// 求并集
set<int> s_union;
set_union(s1.begin(), s1.end(), s2.begin(), s2.end(),
inserter(s_union, s_union.begin()));
cout << "s1 + s2: ";
for (auto it = s_union.begin(); it != s_union.end(); it++) {
cout << *it << " ";
}
cout << endl;
// 求差集
set<int> s_diff;
set_difference(s1.begin(), s1.end(), s2.begin(), s2.end(),
inserter(s_diff, s_diff.begin()));
cout << "s1 - s2: ";
for (auto it = s_diff.begin(); it != s_diff.end(); it++) {
cout << *it << " ";
}
cout << endl;
// 求交集
set<int> s_intersection;
set_intersection(s1.begin(), s1.end(), s2.begin(), s2.end(),
inserter(s_intersection, s_intersection.begin()));
cout << "s1 * s2: ";
for (auto it = s_intersection.begin(); it != s_intersection.end(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}
```
输出结果如下:
```
s1: 3 4 5 6 7 9
s2: 2 4 6 9
s1 + s2: 2 3 4 5 6 7 9
s1 - s2: 3 5 7
s1 * s2: 4 6 9
```
以上代码通过使用STL库中的set容器,调用了set_union、set_difference和set_intersection函数,分别实现了并集、差集和交集的计算。