C++ 编写程序实现两个整数集合的基本运算
时间: 2024-05-07 13:21:41 浏览: 99
假设我们有两个整数集合 A 和 B,包含的元素分别为 a1, a2, ..., an 和 b1, b2, ..., bm。
下面是 C++ 实现两个整数集合的基本运算的代码示例:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 定义整数集合类型
typedef vector<int> IntSet;
// 实现集合的交集操作
IntSet intersect(const IntSet& A, const IntSet& B)
{
IntSet result;
for (auto a : A) {
if (find(B.begin(), B.end(), a) != B.end()) {
result.push_back(a);
}
}
return result;
}
// 实现集合的并集操作
IntSet Union(const IntSet& A, const IntSet& B)
{
IntSet result = A;
for (auto b : B) {
if (find(A.begin(), A.end(), b) == A.end()) {
result.push_back(b);
}
}
return result;
}
// 实现集合的差集操作
IntSet difference(const IntSet& A, const IntSet& B)
{
IntSet result;
for (auto a : A) {
if (find(B.begin(), B.end(), a) == B.end()) {
result.push_back(a);
}
}
return result;
}
int main()
{
// 定义集合 A 和 B
IntSet A = {1, 2, 3, 4, 5};
IntSet B = {4, 5, 6, 7, 8};
// 计算集合 A 和 B 的交集
IntSet C = intersect(A, B);
cout << "A ∩ B = { ";
for (auto c : C) {
cout << c << " ";
}
cout << "}" << endl;
// 计算集合 A 和 B 的并集
C = Union(A, B);
cout << "A ∪ B = { ";
for (auto c : C) {
cout << c << " ";
}
cout << "}" << endl;
// 计算集合 A 和 B 的差集
C = difference(A, B);
cout << "A - B = { ";
for (auto c : C) {
cout << c << " ";
}
cout << "}" << endl;
return 0;
}
```
输出结果为:
```
A ∩ B = { 4 5 }
A ∪ B = { 1 2 3 4 5 6 7 8 }
A - B = { 1 2 3 }
```
上述代码中,我们使用 vector 容器表示整数集合,使用 find() 算法实现集合的基本操作。intersect() 函数实现了两个集合的交集操作,Union() 函数实现了两个集合的并集操作,difference() 函数实现了两个集合的差集操作。
阅读全文