【发布时间】:2013-03-13 21:03:33
【问题描述】:
maps 和 hash_maps 都被设计为保持 pairs 和 <key, data>。我很清楚为什么地图应该有一个用于排序的键(更准确地说:树),但我不明白为什么 hash_maps 需要一个键,为什么不能单独对它的数据进行散列并放入哈希表中?
我在文档中或通过网络搜索都找不到答案。
【问题讨论】:
-
en.wikipedia.org/wiki/Hash_table 没有回答您的问题?
-
那么在地图中,为什么不能单独将数据用于排序(或树)?在这两种情况下,被建模的概念都是字典的概念,这就是为什么要拆分为键和关联数据的原因,因为这是一个有用的想法,而不是出于任何实现原因。如果您不需要密钥,那么您正在对集合进行建模,并且您将使用 std::set 或 set::unordered_set。
-
地图没有树的键。地图拥有一个键,因为它是一个地图。它将键映射到值。树状结构与实现有关。