C++中set和map有啥区别
Posted
技术标签:
【中文标题】C++中set和map有啥区别【英文标题】:What is the difference between set and map in C++C++中set和map有什么区别 【发布时间】:2016-03-24 17:43:12 【问题描述】:考虑创建电话簿,但不知道哪个 STL 容器更好。请解释set和map之间的区别。在哪种情况下哪个是更好的选择。
例如,当名称和数字存储在地图中时,如果将名称作为键,则无法使用数字进行搜索,反之亦然。那么究竟哪种容器/数据结构可以达到这个目的呢?
【问题讨论】:
***.com/questions/21804086/… What is the difference between set vs map in C++?的可能重复 What is the difference between set vs map in C++?、What is the difference between std::set and std::map等可能重复 【参考方案1】:内部很少。它们都是红黑树。
map 虽然包含一对作为其值类型。然后,树操作仅对该对中的第一个元素进行操作。然后 Map 添加额外的功能来基于第一个元素进行搜索并仅检索第二个元素。
当你需要 key->value 对时使用 map。当您需要整体跟踪唯一值时使用 set。
【讨论】:
【参考方案2】:将std::set
视为std::map
,其中键也是值。
【讨论】:
以上是关于C++中set和map有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
c++ 中的 map 和 unordered_map 在内存使用方面有啥区别吗?
C++ unordered_map 的 rehash() 和 reserve() 方法有啥区别?