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

相关文章