#include
#include
#include
int main() {
std::set set1 = {1, 2, 3, 4, 5};
std::set set2 = {3, 4, 5, 6, 7};
std::set<int> differenceSet;
// 使用 std::set_difference 找到两个集合的差集
std::set_difference(set1.begin(), set1.end(),
set2.begin(), set2.end(),
std::inserter(differenceSet, differenceSet.begin()));
// 输出差集
std::cout << "差集: ";
for (int element : differenceSet) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
在这个例子中,std::set_difference将两个集合的差集存储在 differenceSet 中。同样,这里使用了 std::inserter 来插入元素到结果集合中。
请注意,std::set_difference也要求输入范围是有序的。如果你的集合不是有序的,你可能需要在进行差集操作之前先对集合进行排序。
如果你使用的是 std::vector 而不是 std::set,同样的操作也可以通过使用 std::set_difference 以及提前排序来完成。