std::set_difference
时间: 2023-12-06 18:33:05 浏览: 49
std::set_difference是C++ STL中的一个算法函数,用于计算两个已排序的集合之间的差集。它接受四个参数:第一和第二个参数是输入的两个集合的起始和结束迭代器;第三个参数是输出差集的起始迭代器;最后一个参数是用于比较元素的函数对象(默认为std::less)。
这个算法会将在第一个集合中存在但在第二个集合中不存在的元素复制到输出的目标集合中。输出的目标集合必须具有足够的空间来存储结果,并且不能与输入集合重叠。
以下是一个示例代码,演示了如何使用std::set_difference函数:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> set1 = {1, 2, 3, 4, 5};
std::vector<int> set2 = {3, 4, 5, 6, 7};
std::vector<int> difference;
std::set_difference(set1.begin(), set1.end(),
set2.begin(), set2.end(),
std::back_inserter(difference));
std::cout << "Difference: ";
for (const auto& num : difference) {
std::cout << num << " ";
}
return 0;
}
```
输出结果为:
```
Difference: 1 2
```