c++实现s1+s2 两个整数集合的并运算 s1-s2 两个整数集合的差运算 s1*s2 两个整数集合的交运算
时间: 2023-09-27 16:04:40 浏览: 124
好的,针对你的问题,我可以为你提供以下 C++ 代码实现:
```c++
#include <iostream>
#include <set>
using namespace std;
// s1+s2 两个整数集合的并运算
set<int> unionSet(const set<int>& s1, const set<int>& s2) {
set<int> res;
res.insert(s1.begin(), s1.end());
res.insert(s2.begin(), s2.end());
return res;
}
// s1-s2 两个整数集合的差运算
set<int> differenceSet(const set<int>& s1, const set<int>& s2) {
set<int> res;
for (auto i : s1) {
if (!s2.count(i)) {
res.insert(i);
}
}
return res;
}
// s1*s2 两个整数集合的交运算
set<int> intersectionSet(const set<int>& s1, const set<int>& s2) {
set<int> res;
for (auto i : s1) {
if (s2.count(i)) {
res.insert(i);
}
}
return res;
}
int main() {
set<int> s1 = {1, 2, 3, 4, 5};
set<int> s2 = {3, 4, 5, 6, 7};
set<int> res = unionSet(s1, s2);
cout << "s1+s2: ";
for (auto i : res) {
cout << i << " ";
}
cout << endl;
res = differenceSet(s1, s2);
cout << "s1-s2: ";
for (auto i : res) {
cout << i << " ";
}
cout << endl;
res = intersectionSet(s1, s2);
cout << "s1*s2: ";
for (auto i : res) {
cout << i << " ";
}
cout << endl;
return 0;
}
```
这个程序定义了三个函数,分别是 `unionSet`、`differenceSet` 和 `intersectionSet`,分别实现了集合的并、差和交运算。程序中使用 set 容器来表示集合,这是 C++ STL 中的容器之一,用于存储不重复的元素。
阅读全文