STL multiset容器
multiset容器的概念和性质
set在英文中的意义是:集合。而multi−前缀则表示:多重的。所以multiset容器就叫做:有序多重集合。
multiset的很多性质和使用方式和set容器差不了多少。而multiset容器在概念上与set容器不同的地方就是:set的元素互不相同,而multiset的元素可以允许相同。
所以,关于一些multiset容器和set容器的相同点,本篇博客就不加以赘述了。
与set容器不太一样的地方:
s.erase(k);
erase(k)函数在set容器中表示删除集合中元素k。但在multiset容器中表示删除所有等于k的元素。
时间复杂度变成了 \(O(tot+logn)\),其中tot表示要删除的元素的个数。
那么,会存在一种情况,我只想删除这些元素中的一个元素,怎么办呢?
可以妙用一下:
if((it=s.find(a))!=s.end())
s.erase(it);
if中的条件语句表示定义了一个指向一个a元素迭代器,如果这个迭代器不等于s.end(),就说明这个元素的确存在,就可以直接删除这个迭代器指向的元素了。
s.count(k);
count(k)函数返回集合中元素k的个数。set容器中并不存在这种操作。这是multiset独有的。
STL multiset容器的更多相关文章
- 详解C++ STL multiset 容器
详解C++ STL multiset 容器 本篇随笔简单介绍一下\(C++STL\)中\(multiset\)容器的使用方法及常见使用技巧. multiset容器的概念和性质 \(set\)在英文中的 ...
- STL之Set和multiset容器
1.Set和multiset容器 1)set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列.元素插入过程是按排序规则插入,所以不能指定插入位置. 2)set采用红黑树变体的数据 ...
- C++ STL 学习笔记__(7)Set和multiset容器
10.2.8 Set和multiset容器 set/multiset的简介 ² set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列.元素插入过程是按排序规则插入,所以不能指 ...
- STL Set和multiset 容器
STL Set和multiset 容器 set/multiset的简介 set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列. 元素插入过程是按排序规则插入,所以不能指定插入位 ...
- STL学习系列八:Set和multiset容器
1.set/multiset的简介 set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列.元素插入过程是按排序规则插入,所以不能指定插入位置. set采用红黑树变体的数据结构实 ...
- stl之multiset容器的应用
与set集合容器一样,multiset多重集合容器也使用红黑树组织元素数据,仅仅是multiset容器同意将反复的元素健值插入.而set容器则不同意. set容器所使用的C++标准头文件set.事实上 ...
- 2.8 C++STL set/multiset容器详解
文章目录 2.8.1 引入 2.8.2 代码示例 2.8.3 代码运行结果 2.8.4 对组pair的补充 代码实例 运行结果 总结 2.8.1 引入 set/multiset容器概念 set和mul ...
- STL List容器
转载http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html 各个容器有很多的相似性.先学好一个,其它的就好办了.先从基础开始 ...
- c++复习:STL之容器
1 STL的string 1 String概念 string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字 ...
- STL关联容器
这里简单学习一下STL关联容器,主要是map.multimap.set.multiset以及unordered_map.前四个底层实现都是利用红黑树实现的,查找算法时间复杂度为\(O(log(n))\ ...
随机推荐
- IRF技术介绍及配置介绍
IRF技术介绍及配置介绍 IRF(Intelligent Resilient Framework,智能弹性架构)是 H3C 自主研发的软件虚拟化技术. 它的核心思想是将多台设备通过 IRF 物理端口连 ...
- Blazor实战——Known框架多表增删改查
多表增删改查示例 本章介绍学习多张表增.删.改.查功能如何实现,下面以销货出库单作为示例,该业务栏位如下: 销货出库单栏位 销货单号.销货日期.状态.客户.备注 销货出库单明细栏位 商品编码.商品名称 ...
- Robot Framework 自动化测试部署常见问题及处理方法(一)
1.在Python>>Scripts中运行python ride.py时报错 现象: 1 Traceback (most recent call last): 2 File "E ...
- Linux系统安装CH341驱动
Linux系统安装CH341驱动 Linux系统(这里以ubuntu20.04为例)本身会自动安装CH340驱动,随着时间的推移,旧版本的驱动已经无法支持当下的CH340模块,所以我们需要重新安装驱动 ...
- 如何配置Linux的互信
如何配置Linux的互信? 这里针对的是root用户的,普通用户家目录/home/test/.ssh. 1.在客户端生成公钥私钥对 [root@auto1 ~]# ssh-keygen -t rsa ...
- Gin+Xterm.js实现远程Kubernetes Pod(一)
Xterm.js简介 xterm.js (https://xtermjs.org/)是一个开源的 JavaScript 库,它模拟了一个终端接口,可以在网页中嵌入一个完全功能的终端.这个库非常灵活,并 ...
- go项目实现mysql接入以及web api
本文为博主原创,转载请注明出处: 创建go项目,并在go项目中接入mysql,将mysql的配置项单独整理放到一个胚子和文件中,支持项目启动时,通过加载配置文件中的值,然后创建数据库连接. 之后使用n ...
- go语言环境要这样搭建才"省钱"
go语言环境要这样搭建才省钱 目录 go语言环境要这样搭建才省钱 本篇概要 集成开发环境工具(ide) Goland或IntelliJ IDEA Visual Studio Code 其他集成开发环境 ...
- MySQL面试题全解析:准备面试所需的关键知识点和实战经验
MySQL有哪几种数据存储引擎?有什么区别? MySQL支持多种数据存储引擎,其中最常见的是MyISAM和InnoDB引擎.可以通过使用"show engines"命令查看MySQ ...
- 《Redis核心技术与实战》学习笔记总结目录
1 Redis学习路径 去年我学习了极客时间的<Redis核心技术与实战>课程,在这门课程的学习中,我经常看到一位课代表的发言,他就是Kaito,他总结了一份Redis学习路径脑图(建议收 ...