set容器-set和multiset区讲解

简介: set容器-set和multiset区讲解

set 和 multiset 都是 C++ 标准模板库(STL)中的关联容器,它们存储的元素都是唯一的,并且默认按升序排列。然而,set 和 multiset 之间存在一个关键的区别:set 容器不允许存储重复的元素,而 multiset 容器则允许。

 

set 容器

set 容器通过红黑树(一种自平衡的二叉搜索树)来实现其特性。由于红黑树的性质,set 中的元素始终保持有序,且插入、删除和查找操作的时间复杂度都是对数级别的。

 

set 的基本使用

image.png

image.png

set 的特点

唯一性:set 中的元素是唯一的,即不会有重复元素。

有序性:set 中的元素默认按升序排列。

自动排序:当向 set 插入元素时,它会自动调整元素的顺序。

高效操作:set 提供了对数时间复杂度的插入、删除和查找操作。

multiset 容器

multiset 与 set 非常相似,但允许存储重复的元素。它同样使用红黑树来维护元素的排序和唯一性(这里的“唯一性”指的是单个元素位置的唯一性,而不是元素值的唯一性)。

 

multiset 的基本使用

image.png

image.png

 

目录
打赏
0
0
0
0
6
分享
相关文章
|
19天前
|
【c++丨STL】set/multiset的使用
本文深入解析了STL中的`set`和`multiset`容器,二者均为关联式容器,底层基于红黑树实现。`set`支持唯一性元素存储并自动排序,适用于高效查找场景;`multiset`允许重复元素。两者均具备O(logN)的插入、删除与查找复杂度。文章详细介绍了构造函数、迭代器、容量接口、增删操作(如`insert`、`erase`)、查找统计(如`find`、`count`)及`multiset`特有的区间操作(如`lower_bound`、`upper_bound`、`equal_range`)。最后预告了`map`容器的学习,其作为键值对存储的关联式容器,同样基于红黑树,具有高效操作特性。
45 3
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
170 3
|
10月前
|
C++之set/multiset容器
C++之set/multiset容器
|
10月前
|
C++一分钟之-map与set容器详解
【6月更文挑战第21天】C++ STL的`map`和`set`是基于红黑树的关联容器,提供有序存储和高效查找。`map`存储键值对,键唯一,值可重复;`set`仅存储唯一键。两者操作时间复杂度为O(log n)。常见问题包括键的唯一性和迭代器稳定性。自定义比较函数可用于定制排序规则,内存管理需注意适时释放。理解和善用这些工具能提升代码效率。
112 3
【C++航海王:追寻罗杰的编程之路】set|map|multiset|multimap简单介绍
【C++航海王:追寻罗杰的编程之路】set|map|multiset|multimap简单介绍
73 0
【C++航海王:追寻罗杰的编程之路】set|map|multiset|multimap简单介绍
|
11月前
|
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别(下)
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别
73 1
|
11月前
|
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别(中)
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别
67 1
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别(上)
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别
93 1
语音识别,函数综合案例,黑马ATM,/t/t一个对不齐,用两个/t,数据容器入门,数据容器可以分为列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
语音识别,函数综合案例,黑马ATM,/t/t一个对不齐,用两个/t,数据容器入门,数据容器可以分为列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等