Set 与 Multiset
Set 与 Multiset 会根据待定的排序准则,自动将元素排序,两者不同之处在于前者不允许元素重复,后者允许,下面介绍一下set中的函数;
一、set 中的 begin、end、rbegin、rend、empty、size 函数
和其他数据结构情况相似,这里就不详细介绍了,可以参考上一篇的;
二、set 中的 insert 函数
set<int> s(5,10) ;
s.insert(6) ; // 由于不管在什么地方插入,插入之后都会进行自动排序,所以插入位置可以省略
三、set 中的 erase 函数
和其他函数差不多,但set中没有重复的元素,所以可以直接删除对象;
int a[] = {1,2,3,4,5} ;
set<int> s(a,a+5) ;
s.erase(5) ; // 删除元素 5 ;
s.erase(s.begin()) ; // 删除第一个数
四、set 中的 find 函数
find 函数用来查找set中的元素,返回的是一个指针;
int a[] = {1,2,3,4,5} ;
set<int> s(a,a+5) ;
s.find(2) ; // 返回 2 所在的位置指针;
s.erase(s.find(2)) ; // 删除 元素 2 ,相当于 s.erase(2) ;
五、set 中的 count 函数
count 函数用来统计相同数值出现的次数,一般都为1,因为set中没有重复的数据
int a[] = {1,2,3,4,5} ;
set<int> s(a,a+5) ;
s.count(2) ; // 返回元素 2 出现的次数
如果想重载排序规则的运算符,set中的对象必须为 类(struct / class)
Set 与 Multiset的更多相关文章
- C++ std::multiset
std::multiset template < class T, // multiset::key_type/value_type class Compare = less<T>, ...
- Guava学习笔记:Guava新增集合类型-Multiset
Guava引进了JDK里没有的,但是非常有用的一些新的集合类型.所有这些新集合类型都能和JDK里的集合平滑集成.Guava集合非常精准地实现了JDK定义的接口.Guava中定义的新集合有: Multi ...
- [Google Guava]学习--新集合类型Multiset
Guava提供了一个新集合类型Multiset,它可以多次添加相等的元素,且和元素顺序无关.Multiset继承于JDK的Cllection接口,而不是Set接口. Multiset主要方法介绍: a ...
- UVA11136Hoax or what( multiset的应用)
题目链接 题意:n天,每天往一个箱子里放m个数,放完之后取最大的Max和最小的min做差,并把这两个数去掉,求n天之后的和 multiset 和 set的原理是相似的,multiset可以存多个相同的 ...
- 4.2 set和multiset
使用必须包含头文件set 1)multiset *:定义 如果不给第二个参数,默认less<key>,即用<来进行. 例如: A是一个类的名字,则可以定义一个容器对象如下: mult ...
- STL(multiset) UVA 11020 Efficient Solutions
题目传送门 题意:训练指南P228 分析:照着书上的做法,把点插入后把它后面不占优势的点删除,S.size ()就是优势的人数,时间复杂度O (nlogn) #include <bits/std ...
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset(可持久化Trie)
D. Vasiliy's Multiset time limit per test 4 seconds memory limit per test 256 megabytes input standa ...
- STL中的set/multiset小结
(1)使用set/multiset之前必须包含头文件<set>:#include<set> (2)namespace std{ template <class T, cl ...
- STL--集和多集(set/multiset)
与基本容器相比,关联容器更注重快速和高效地检索数据的能力.这些容器是根据键值(key)来检索数据的,键可以是值也可以是容器中的某一成员.这一类中的成员在初始化后都是按一定顺序排好序的. 本文地址:ht ...
- C++ Set & MultiSet
转自http://www.cppblog.com/wanghaiguang/archive/2012/06/05/177627.html STL Set介绍集合(Set)是一种包含已排序对象的关联容器 ...
随机推荐
- restful_api
http://www.ruanyifeng.com/blog/2014/05/restful_api.html
- Protection 5 ---- Priviliege Level Checking 2
CPU不仅仅在程序访问数据段和堆栈段的时候进行权限级别检查,当程序控制权转换的时候也会进行权限级别检查.程序控制权转换的情况很多,各种情况下检查的方式以及涉及到的检查项都是不同的.这篇文章主要描述了各 ...
- git创建标签
创建标签 在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branch * dev master $ git checkout master Switched to branc ...
- oracle查看所有表及字段
oracle表设计 http://blog.csdn.net/lanpy88/article/details/7580820 Oracle查看所有表和字段 获取表: select table_name ...
- 轻奢品牌全面崛起 Coach、UGG等纷纷抢滩新兴市场_新闻中心_赢商网
轻奢品牌全面崛起 Coach.UGG等纷纷抢滩新兴市场_新闻中心_赢商网 轻奢品牌全面崛起 Coach.UGG等纷纷抢滩新兴市场
- PHP 魔术方法之__set__get__unset,__isset,__call
<?php /*** 魔术方法: 是指某些情况下,会自动调用的方法,称为魔术方法 PHP面向对象中,提供了这几个魔术方法, 他们的特点 都是以双下划线__开头的 __construct(), _ ...
- OracleOraDb10g_home1TNSListener服务无法启动
启动OracleOraDb10g_home1TNSListener服务的时候就报错:“Windows无法启动OrcleOraDb11g_home1TNSListener服务(位于本地计算机上). 错误 ...
- Css攻克Selectors 一
Selectors (选择器) ---------------参考MDN中css学习. 首先css选择器有很多,但总体概括起来的话有两种: 标签选择器(*是特殊情况),可但标签,也可上下文多标签: 属 ...
- js中字符串方法
字符串方法: 1. charAt(索引值)//通过索引值获取字符串中对应的值 例如: var str='sdf123'; alert(str.charAt(0));//结果弹出第一个索引对应的值:s
- iOS 点转成字符串,再字符串转换成点
CGPointFromString(<#NSString *string#>) NSStringFromCGPoint(<#CGPoint point#>)