【发布时间】:2014-02-28 07:12:13
【问题描述】:
我仍然对 STL 中 map 和 set 数据结构之间的差异感到困惑。我知道 set 是以排序的方式存储值,那么 map 呢?它是否按排序顺序存储值? Map存储值对(key,value),这个特性有什么好处?
【问题讨论】:
-
从语义上讲,set 和 map 是完全不同的数据结构。您应该通过一个很好的教程来学习何时使用哪个。
-
它们都是关联容器,不是吗?默认情况下,它们使用
std::less作为比较器,并且遵循严格的顺序。 -
您可以将集合想象成一个哈希,其中仅使用键而未使用值。
-
在 STL 的上下文中,最好不要设置为哈希。 unordered_set 是用 hash 实现的,set 是 not.