set/map unordered_set/unordered_map适用情况
在C++中,set
、map
、unordered_set
和unordered_map
这四种容器的使用场景如下:
-
set
:适用于需要保持元素独特性且无需特定顺序的情况。例如,存储一组唯一的用户名、IP地址等。set
实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值。 -
map
:适用于需要根据键来检索值的情况。例如,存储用户的信息、配置参数等。map
内部实现了一个红黑树,因此map内部的所有元素都是有序的。对于map进行的查找,删除,添加等一系列的操作都相当于是对红黑树进行的操作。 -
unordered_set
:适用于需要快速插入和查找的场景,需要存储唯一元素的场景。unordered_set
的内部实现了一个哈希表,因此,其元素的排列顺序是无序的。 -
unordered_map
:适用于需要快速插入和查找的场景,需要存储键值对并且通过键快速查找值的场景。unordered_map
内部实现了一个哈希表,因此,其元素的排列顺序是无序的。
总的来说,set
和map
适用于需要有序存储和快速查找的场景,而unordered_set
和unordered_map
适用于需要快速插入和查找的场景。在需要使用字典结构进行算法编程的大部分情况下,都需要使用 unordered_map
而不是 map
。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)