C++_STL_集合算法:交集,并集和差集

- 日理万妓 2021-12-11 04:41 424阅读 0赞

这几个函数我编译的时候没有输出来
set_union(),set_intersection(),set_difference()
set_union(),set_intersection(),set_difference()
set_union: 构造一个有序序列,包含两个有序序列的并集。
set_intersection: 构造一个有序序列,包含两个有序序列的交集。
set_difference: 构造一个有序序列,该序列保留第一个有序序列中存在而第二个有序序列中不存在的元素。

  1. vector<int> vecIntA;
  2. vecIntA.push_back(1);
  3. vecIntA.push_back(3);
  4. vecIntA.push_back(5);
  5. vecIntA.push_back(7);
  6. vecIntA.push_back(9);
  7. vector<int> vecIntB;
  8. vecIntB.push_back(1);
  9. vecIntB.push_back(3);
  10. vecIntB.push_back(5);
  11. vecIntB.push_back(6);
  12. vecIntB.push_back(8);
  13. vector<int> vecIntC;
  14. vecIntC.resize(10);
  15. //并集
  16. set_union(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin()); //vecIntC : {1,3,5,6,7,8,9,0,0,0}
  17. //交集
  18. fill(vecIntC.begin(),vecIntC.end(),0);
  19. set_intersection(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin()); //vecIntC: {1,3,5,0,0,0,0,0,0,0}
  20. //差集
  21. fill(vecIntC.begin(),vecIntC.end(),0);
  22. set_difference(vecIntA.begin(), vecIntA.end(), vecIntB.begin(), vecIntB.end(), vecIntC.begin()); //vecIntC: {7,9,0,0,0,0,0,0,0,0}

发表评论

表情:
评论列表 (有 0 条评论,424人围观)

还没有评论,来说两句吧...

相关阅读