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 2566 Bound Found 尺取 难度:1
Bound Found Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 1651 Accepted: 544 Spec ...
- markdown实例
Hi This is a Markdown live editor built using WMD and other open source tools. I use it to write ent ...
- 《Python》 列表、元祖和range
一.列表: 1.Python基础数据类型之一: 2.其他语言中也有列表的概念,js 数组: 3.可索引,可切片,可加步长: 4.列表可以存储大量的数据: 第一:索引,切片,切片+步长. 第二:增删改查 ...
- css rem计算
先抛出一个问题:为什么要选择rem? px:像素是相对于显示器屏幕分辨率而言的相对长度单位.pc端使用px倒也无所谓,可是在移动端,因为手机分辨率种类颇多,不可能一个个去适配,这时px就显得非常无力, ...
- 计算 S=a+aa+aaa+aaaa+a.......a【转载】
package java算法; import java.util.Scanner; /* * 计算 S=a+aa+aaa+aaaa+a.......a */ public class numadd { ...
- Xcode C++ and Objective-C refactoring
Is there a way to refactor mixed C++/Objective-C code in Xcode ?? I am writing a game using Cocos2D ...
- IDEA创建的Web项目配置Tomcat并启动Maven项目
点击如图所示的地方,进行添加Tomcat配置页面 弹出页面后,按照如图顺序找到,点击+号 tomcat Service -> Local 注意,这里不要选错了哦,还有一个TomE ...
- QT-This application failed to start because it could not find or load the Qt platform plugin "windows"
前言 将qt的vs工程生成Release版本,不过出现错误,现将可以解决该问题的方法记录下来. 项目环境 系统:win7_64 软件:VS2013.QT5.6.2.qt-vs-addin-1.2.5 ...
- java设计模——反射的应用 (利用反射来去除if判断语句)
利用反射来去除if判断语句 我的以前写的一个查分系统,就是部长让我写的那个,使用一个分发器(函数),他会根据传递进来的字符串参数调用不同的方. If(“add”.equalsIgnoreCase(fu ...
- (8)propetry装饰器
propetry是一个内置函数,用来将一个功能伪装成一个数据属性 property将一个方法伪装成一个数据属性class People: def __init__(self,name,height,w ...