C++ STL Set 集合
前言
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 集合的更多相关文章
- 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 ...
- STL的集合set
集合: 集合是由元素组成的一个类,其成员可以是一个集合,也可以是一个原子,通常一个元素在一个集合中不能多次出现:由于对实现集合不是很理解,只简单写下已有的STL中的set集合使用: C++中set基本 ...
- (转)C++ STL set() 集合
set是STL中一种标准关联容器(vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用平衡的搜索树——红黑树实 ...
- 【STL】集合运算
STL中有可以实现交集.并集.差集.对称差集的算法. 使用前需要包含头文件: #include <algorithm> 注:使用计算交集和并集的算法必须保证参与运算的两个集合有序!!! 交 ...
- STL&&用法集合
.....STL是c++里很强势很好用的一系列容器(函数)之类的,之前一直不太会用,所以总是暴毙....想着快比赛了,是时候理一下这些东西了. -1.pair 存放两个基本元素的东西 定义方法: pa ...
- C++ STL set集合容器
汇总了一些set的常用语句,部分参考了这篇:http://blog.163.com/jackie_howe/blog/static/199491347201231691525484/ #include ...
- stl的集合set——安迪的第一个字典(摘)
set就是数学上的集合——每个元素最多只出现一次,和sort一样,自定义类型也可以构造set,但同样必须定义“小于”运算符 以下代码测试set中无重复元素 #include<iostream&g ...
- STL set集合用法总结(multiset)
2017-08-20 15:21:31 writer:pprp set集合容器使用红黑树的平衡二叉树检索树,不会将重复键值插入,检索效率高 logn 检索使用中序遍历,所以可以将元素从小到大排列出来 ...
- 单词数 (STL set集合)
单词数 Problem Description lily的好朋友xiaoou333近期非常空.他想了一件没有什么意义的事情.就是统计一篇文章里不同单词的总数.以下你的任务是帮助xiaoou333解决问 ...
随机推荐
- POJ 2109 Power of Cryptography 大数,二分,泰勒定理 难度:2
import java.math.BigInteger; import java.util.Scanner; public class Main { static BigInteger p,l,r,d ...
- 快速切题 poj1258
坑!!!我还以为一个整数会截到两行!! Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 40056 Ac ...
- anroid学习目录总结
当前标签: Android开发学习总结 Android开发学习总结(六)—— APK反编译 孤傲苍狼 2015-07-26 12:48 阅读:4245 评论:5 Android开发学习总结 ...
- SharePoint 会话(Session)状态和状态服务
1. 启用会话状态 Enable-SPSessionStateService –DefaultProvision 或 Enable-SPSessionStateService –DatabaseNam ...
- 关于DIY操作系统的断更道歉
去年9月份正是开学的时候,刚开学没感觉忙.但是随着课程的深入,而且都是专业课,再加上招娉会一个接一个的来,渐渐显得力不从心.由于我对操作系统这一方面也是一知半解,以前也没有系统地学过计算机方面的东西, ...
- pl/sql中误删表中数据并提交恢复办法
最近在操作表中数据时,删除了表中数据,但是又想恢复,后来查到了官方的一篇文档,发现还蛮有用的,如下: 在pl/sql中运行,select * from A as of TIMESTAMP to_tim ...
- anu - proptypes
//为了兼容yo var check = function () { return check; }; check.isRequired = check; export var PropTypes = ...
- mysql left join 查询
inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 左连接实例: SELECT t. NAME, t1. ...
- phpstorm 常用指令
先选中移动内容 块向右移动:Tab键 块向左移动:Shift + Tab键 ctrl+/行注释ctrl+shift+/块注释 ctrl+g跳转行 alt + 上/下 键实现在类中的方法切换ctrl + ...
- MySQL主从数据一致性问题修复
MySQL主从数据一致性问题修复 前面,我们使用pt-table-checksum 可以检测出主从数据是否一致的问题.发现问题后,我们怎么解决这些问题,也是我们必须要会的技能. 修复主从数据一致性问题 ...