前言

set是STL中的一种关联容器。集合具有无序性,互异性等特点。熟练使用STL中的set模板类,可以比较简单的解决一些编程问题。

  • 关联容器:元素按照关键字来保存和访问,STL中的map,set就是关联容器

  • 顺序容器:元素按照在容器中的位置顺序保存和访问

在使用set模板类前,请添加头文件 #include <set>

基本操作

  • int size(); 返回集合中元素的个数

  • iterator insert(T ); 向集合中插入一个元素

  • iterator begin(); 返回指向当前集合中第一个元素的迭代器

  • iterator end(); 返回指向当前集合中最后个元素的迭代器

求交集,并集,差集,对称差集

要使用上述算法,请添加头文件 #include <algorithm>

  • 交集

  • template<class _InIt1, class _InIt2, class _OutIt>

    _OutIt set_intersection(_InIt1 _First1, _InIt1 _Last1,_InIt2 _First2, _InIt2 _Last2, _OutIt _Dest);

形参含义

_First1 , _Last1 集合a的头尾迭代器

_First1 ,   _Last2 集合b的头尾迭代器

_Dest  储存运算结果容器的头迭代器

返回值

返回储存结果容器的最后一个元素的下一个迭代器

int first[] = { 5,10,15,20,25 };
int second[] = { 50,40,30,20,10 };
set<int> a(first, first + 5);
set<int> b(second, second + 5);
std::vector<int> v(10);// 0 0 0 0 0 0 0 0 0 0
std::vector<int>::iterator it;
it = set_intersection(a.begin(), a.end(), b.begin(), b.end(), v.begin());
//10 20 0 0 0 0 0 0 0 0
//it 指向第三个元素
v.resize(it - v.begin());// 10 20
  • 并集

  • template<class _InIt1, class _InIt2, class _OutIt> inline

    _OutIt set_union(_InIt1 _First1,  _InIt1 _Last1, _InIt2 _First2,  _InIt2 _Last2,  _OutIt _Dest);

  • 差集

  • template<class _InIt1,class _InIt2,class _OutIt>

    _OutIt set_difference(_InIt1 _First1, _InIt1 _Last1,_InIt2 _First2, _InIt2 _Last2,_OutIt _Dest);

  • 对称差集

  • template<class _InIt1,class _InIt2,class _OutIt>

    _OutIt set_symmetric_difference(_InIt1 _First1, _InIt1 _Last1,_InIt2 _First2, _InIt2 _Last2,_OutIt _Dest);

最新文章

  1. Deep learning:四十一(Dropout简单理解)
  2. 浅谈你感兴趣的 C# GC 机制底层
  3. boost::asio 使用实例
  4. linux修改history
  5. (转)Linux vmstat命令实战详解
  6. 数组 寻找最大的第k个数
  7. 【Passport】微软过时的技术
  8. 实验五 Java网络编程及安全
  9. POJ 1661 Help Jimmy -- 动态规划
  10. PIL Gif分割成多个图片
  11. 【值得收藏】Mathematica数值计算工具的学习资料汇编【可免费下载】
  12. mvc3项目如何在IIS7.5上发布的
  13. php示例代码
  14. js读取cookie、设置cookie
  15. python日记
  16. DSAPI HTTP监听服务端与客户端_指令版
  17. input ,button, textarea 1)使用disabled , 2) 显示值, 3) 表单提交. 4) jquery.form.js ajaxSubmit() 无刷新ajax提交表单.
  18. 从源码开始运行Bitcoin Core
  19. [Unity工具]CSV工具类
  20. Jmeter录制APP脚本

热门文章

  1. 如何搭建.NET Entity Framework分布式应用系统框架
  2. QueryPerformanceFrequency
  3. JProfiler性能分析
  4. 给tabBarItem加点击效果动画
  5. 攻防:文件上传漏洞的攻击与防御,转自H3C
  6. HDU 1254 推箱子(BFS)
  7. 微信小程序代码片段
  8. 【图像处理】Haar-like特征
  9. 【opencv基础】linux系统opencv以及opencv_contrib的安装与使用
  10. AOP jdk动态代理