C++ 程序在 STL 中实现 Set_Difference
c++server side programmingprogramming
两个集合的差异仅由第一个集合中存在的元素形成,而不由第二个集合中存在的元素形成。函数复制的元素始终以相同的顺序来自第一个集合。两个集合中的元素应已排序。
常见的集合运算是 −
- 集合并集
- 集合交集
- 对称集合差集或异或
- 集合差集或减集
算法
开始 声明集合向量v和迭代器st。 初始化st = set_difference (set1, set1 + n, set2, set2 +n, v.begin())) 打印两个集合之间不同的元素数量。 结束。
示例代码
#include<iostream> #include <algorithm> #include <vector> using namespace std; int main () { int set1[] = {5,6,7,8,9,10}; int set2[] = {1,2,3,4,6,7}; vector<int> v(10); vector<int>::iterator it; sort (set1, set1 + 6); sort (set2, set2 + 6); it = set_difference(set1, set1 + 6, set2, set2 + 6, v.begin()); v.resize(it - v.begin()); cout << "The difference between the sets has " << (v.size()) << " elements: "<<endl; for (it = v.begin(); it != v.end(); ++it) cout<< *it<<" "; cout <<endl; return 0; }
输出
The difference between the sets has 4 elements 5,8,9,10