C++ STL中 set 和 map 的区别
STL 中的 set 和 map 在它们都使用红黑树(一种自平衡 BST)的意义上是相似的。 请注意,搜索、插入和删除的时间复杂度为 O(Log n)。
set 和 map 的区别
区别在于 set 仅用于存储键,而 map 用于存储键值对。 例如,考虑打印已排序的不同元素的问题,使用 set
因为键需要值。 如果将问题更改为打印不同排序元素的频率,那么使用 map
。 需要映射来存储数组值作为键和频率作为值。
示例:
输出结果:
示例:
输出结果:
集合和映射的变化:
Set 和 Map 都存储唯一值和排序值。 但是如果没有这样的要求,那么可以使用 multiset/multimap
和 unordered_set/unordered_map
。
Multimap:Multimap
不允许通过索引存储元素。
示例:
运行结果:
Multiset示例
运行结果:
Unordered_set示例
运行结果:
Unordered_map示例
运行结果: