前言

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);

C++ STL Set 集合的更多相关文章

  1. STL语法——集合:set 安迪的第一个字典(Andy's First Dictionary,UVa 10815)

    Description Andy, , has a dream - he wants to produce his very own dictionary. This is not an easy t ...

  2. STL的集合set

    集合: 集合是由元素组成的一个类,其成员可以是一个集合,也可以是一个原子,通常一个元素在一个集合中不能多次出现:由于对实现集合不是很理解,只简单写下已有的STL中的set集合使用: C++中set基本 ...

  3. (转)C++ STL set() 集合

    set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实 ...

  4. 【STL】集合运算

    STL中有可以实现交集.并集.差集.对称差集的算法. 使用前需要包含头文件: #include <algorithm> 注:使用计算交集和并集的算法必须保证参与运算的两个集合有序!!! 交 ...

  5. STL&&用法集合

    .....STL是c++里很强势很好用的一系列容器(函数)之类的,之前一直不太会用,所以总是暴毙....想着快比赛了,是时候理一下这些东西了. -1.pair 存放两个基本元素的东西 定义方法: pa ...

  6. C++ STL set集合容器

    汇总了一些set的常用语句,部分参考了这篇:http://blog.163.com/jackie_howe/blog/static/199491347201231691525484/ #include ...

  7. stl的集合set——安迪的第一个字典(摘)

    set就是数学上的集合——每个元素最多只出现一次,和sort一样,自定义类型也可以构造set,但同样必须定义“小于”运算符 以下代码测试set中无重复元素 #include<iostream&g ...

  8. STL set集合用法总结(multiset)

    2017-08-20 15:21:31 writer:pprp set集合容器使用红黑树的平衡二叉树检索树,不会将重复键值插入,检索效率高 logn 检索使用中序遍历,所以可以将元素从小到大排列出来 ...

  9. 单词数 (STL set集合)

    单词数 Problem Description lily的好朋友xiaoou333近期非常空.他想了一件没有什么意义的事情.就是统计一篇文章里不同单词的总数.以下你的任务是帮助xiaoou333解决问 ...

随机推荐

  1. POJ 2109 Power of Cryptography 大数,二分,泰勒定理 难度:2

    import java.math.BigInteger; import java.util.Scanner; public class Main { static BigInteger p,l,r,d ...

  2. 快速切题 poj1258

    坑!!!我还以为一个整数会截到两行!! Agri-Net Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 40056   Ac ...

  3. anroid学习目录总结

    当前标签: Android开发学习总结   Android开发学习总结(六)—— APK反编译 孤傲苍狼 2015-07-26 12:48 阅读:4245 评论:5     Android开发学习总结 ...

  4. SharePoint 会话(Session)状态和状态服务

    1. 启用会话状态 Enable-SPSessionStateService –DefaultProvision 或 Enable-SPSessionStateService –DatabaseNam ...

  5. 关于DIY操作系统的断更道歉

    去年9月份正是开学的时候,刚开学没感觉忙.但是随着课程的深入,而且都是专业课,再加上招娉会一个接一个的来,渐渐显得力不从心.由于我对操作系统这一方面也是一知半解,以前也没有系统地学过计算机方面的东西, ...

  6. pl/sql中误删表中数据并提交恢复办法

    最近在操作表中数据时,删除了表中数据,但是又想恢复,后来查到了官方的一篇文档,发现还蛮有用的,如下: 在pl/sql中运行,select * from A as of TIMESTAMP to_tim ...

  7. anu - proptypes

    //为了兼容yo var check = function () { return check; }; check.isRequired = check; export var PropTypes = ...

  8. mysql left join 查询

    inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 左连接实例: SELECT t. NAME, t1. ...

  9. phpstorm 常用指令

    先选中移动内容 块向右移动:Tab键 块向左移动:Shift + Tab键 ctrl+/行注释ctrl+shift+/块注释 ctrl+g跳转行 alt + 上/下 键实现在类中的方法切换ctrl + ...

  10. MySQL主从数据一致性问题修复

    MySQL主从数据一致性问题修复 前面,我们使用pt-table-checksum 可以检测出主从数据是否一致的问题.发现问题后,我们怎么解决这些问题,也是我们必须要会的技能. 修复主从数据一致性问题 ...