Hash Table v / s C ++中的STL映射

时间:2010-03-17 07:01:35

标签: c++ hashtable hashmap

我正在尝试学习C ++地图。只是想知道STL地图的实施。我读它采用二进制搜索树。

  1. STL中是否有哈希表的实现?

  2. STL地图如何存储键值对?

3 个答案:

答案 0 :(得分:13)

典型的STL实现基于红黑树。 C ++ TR1提供了std :: tr1 :: unordered_map,它使用哈希表实现。 Boost还提供了一个unordered_map哈希表实现。

C ++ 11现在有std::unordered_map

答案 1 :(得分:1)

  1. 有些库实现stdext::hash_map,它与std::map具有几乎相同的接口,但使用哈希表而不是二叉树。

  2. 二叉树节点根据键排列在树中,每个键都附加一个值,可以整体放在同一个节点中,也可以作为指针。

答案 2 :(得分:0)

键值对存储在std::pair中。它是一个模板化的结构;名为first的元素存储密钥,名为second的元素存储该值。 Some info.