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

 

目录
相关文章
|
1月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
68 0
|
4月前
|
存储 C++ 容器
|
5月前
|
C++ 容器
C++之set/multiset容器
C++之set/multiset容器
|
5月前
|
存储 自然语言处理 C++
【C++航海王:追寻罗杰的编程之路】set|map|multiset|multimap简单介绍
【C++航海王:追寻罗杰的编程之路】set|map|multiset|multimap简单介绍
42 0
【C++航海王:追寻罗杰的编程之路】set|map|multiset|multimap简单介绍
|
5月前
|
存储 算法 NoSQL
C++一分钟之-map与set容器详解
【6月更文挑战第21天】C++ STL的`map`和`set`是基于红黑树的关联容器,提供有序存储和高效查找。`map`存储键值对,键唯一,值可重复;`set`仅存储唯一键。两者操作时间复杂度为O(log n)。常见问题包括键的唯一性和迭代器稳定性。自定义比较函数可用于定制排序规则,内存管理需注意适时释放。理解和善用这些工具能提升代码效率。
60 3
|
4月前
|
存储 语音技术 Python
语音识别,函数综合案例,黑马ATM,/t/t一个对不齐,用两个/t,数据容器入门,数据容器可以分为列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
语音识别,函数综合案例,黑马ATM,/t/t一个对不齐,用两个/t,数据容器入门,数据容器可以分为列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
|
6月前
|
存储 C语言 容器
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别(下)
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别
45 1
|
6月前
|
存储 C语言 容器
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别(中)
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别
46 1
|
6月前
|
存储 自然语言处理 C语言
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别(上)
从C语言到C++_26(set+map+multiset+multimap)力扣692+349+牛客_单词识别
59 1
|
5月前
|
编译器 C++ 容器
通过红黑树封装 map 和 set 容器
通过红黑树封装 map 和 set 容器