c++ vector求差集
时间: 2023-08-27 17:19:36 浏览: 129
要求两个 `vector` 的差集,你可以使用 C++ 中的 STL 容器和算法来实现。下面是一种常见的方法:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> vec1 = {1, 2, 3, 4, 5};
std::vector<int> vec2 = {3, 4, 5, 6, 7};
std::vector<int> difference;
// 首先对两个向量进行排序
std::sort(vec1.begin(), vec1.end());
std::sort(vec2.begin(), vec2.end());
// 使用 std::set_difference 算法获取差集
std::set_difference(vec1.begin(), vec1.end(), vec2.begin(), vec2.end(), std::back_inserter(difference));
// 输出差集
for (const auto& element : difference) {
std::cout << element << " ";
}
return 0;
}
```
在上面的示例中,我们使用 `std::set_difference` 算法来计算两个向量的差集,并将结果存储在 `difference` 向量中。然后,我们遍历差集并输出结果。
以上代码的输出将是:1 2
这表示差集中只包含在第一个向量中而不在第二个向量中的元素。希望能帮到你!如果还有其他问题,请随时提问。
阅读全文