c++完整代码:输入集合A和B,输出公式:差集,对称差,笛卡尔积
时间: 2024-12-27 14:32:07 浏览: 11
在 C++ 中,我们可以使用标准库 `set` 和一些基本操作来计算集合之间的差集、对称差以及笛卡尔积。以下是使用 C++ 完整代码的例子:
```cpp
#include <iostream>
#include <set>
#include <algorithm>
// 函数声明
std::set<int> set_difference(std::set<int>& A, std::set<int>& B);
std::set<int> set_symmetric_difference(std::set<int>& A, std::set<int>& B);
std::set<std::pair<int, int>> cartesian_product(std::set<int>& A, std::set<int>& B);
int main() {
std::set<int> A = {1, 2, 3, 4, 5};
std::set<int> B = {4, 5, 6, 7};
// 打印差集
std::cout << "差集(A - B): ";
for (auto it = set_difference(A, B).begin(); it != set_difference(A, B).end(); ++it) {
std::cout << *it << " ";
}
std::cout << "\n";
// 打印对称差
std::cout << "对称差(A Δ B): ";
for (auto it = set_symmetric_difference(A, B).begin(); it != set_symmetric_difference(A, B).end(); ++it) {
std::cout << *it << " ";
}
std::cout << "\n";
// 打印笛卡尔积
std::set<std::pair<int, int>> product = cartesian_product(A, B);
std::cout << "笛卡尔积(A × B): ";
for (const auto& pair : product) {
std::cout << "(" << pair.first << ", " << pair.second << ") ";
}
std::cout << "\n";
return 0;
}
// 辅助函数: 差集
std::set<int> set_difference(std::set<int>& A, std::set<int>& B) {
return std::set_difference(A.begin(), A.end(), B.begin(), B.end());
}
// 辅助函数: 对称差
std::set<int> set_symmetric_difference(std::set<int>& A, std::set<int>& B) {
return std::set_symmetric_difference(A.begin(), A.end(), B.begin(), B.end());
}
// 辅助函数: 笛卡尔积
std::set<std::pair<int, int>> cartesian_product(std::set<int>& A, std::set<int>& B) {
std::set<std::pair<int, int>> product;
for (const auto& a : A) {
for (const auto& b : B) {
product.insert({a, b});
}
}
return product;
}
```
阅读全文