中关村在线

软件

C++ STL multiset 使用指南

multiset与set同为C++ STL容器,名称相近,功能相似但各有特点。

1、 multiset 与 set 类似,内部采用红黑树实现,因此具有较高的时间复杂度。

2、 如何定义一个多重集合?

3、 需在头文件中添加include以支持集合操作功能。

4、 与 set 相比,multiset 支持的内置函数基本相同,功能高度相似。

5、 主要包括:获取大小、判空、清空、插入元素、删除元素、查找元素、统计元素个数,以及获取起始和结束迭代器等操作。

6、 包括容量大小、判空、清空、插入、删除、查找、计数、首尾迭代器等操作功能。

7、 插入、删除和查找操作的时间复杂度均为 O(log n)。

8、 计算元素 x 出现次数的时间复杂度为 O(出现次数 + log n)。

9、 其余操作时间复杂度均为常数级。

10、 以2为底的对数,n表示多重集中元素的总数。

11、 掌握C++ STL中set的用法技巧

12、 既然已有集合,为何还需引入多重集这一概念?

13、 当需要保留重复元素时,可使用 multiset,因其特性为允许重复,适用于无法自动去重的场景。

14、 所示,对比 set 与 multiset 的异同点。

15、 由于 multiset 允许重复元素,count(x) 函数因此能够统计特定值的出现次数。

16、 由于 set 具有去重特性,元素 x 要么不存在,要么仅出现一次,因此直接使用 find(x) 更为高效。

17、 但 multiset 的特性有所不同

18、 所示,set 不允许重复元素,multiset 允许重复。

19、 与 set 相同,multiset 在声明时其类型也必须支持小于号的定义。

20、 C++中int、string等内置类型已自动支持小于号比较操作。

21、 当 multiset 中元素为自定义结构体时,需掌握运算符重载方法。

22、 这样编写会导致编译器报错。

23、 C++运算符重载方法详解

24、 multiset 可视为允许重复元素的 set,灵活选用合适容器,有助于简化编程过程。

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具