我正在尝试学习C ++地图。只是想知道STL地图的实施。我读它采用二进制搜索树。
STL中是否有哈希表的实现?
STL地图如何存储键值对?
答案 0 :(得分:13)
典型的STL实现基于红黑树。 C ++ TR1提供了std :: tr1 :: unordered_map,它使用哈希表实现。 Boost还提供了一个unordered_map哈希表实现。
C ++ 11现在有std::unordered_map
答案 1 :(得分:1)
有些库实现stdext::hash_map
,它与std::map
具有几乎相同的接口,但使用哈希表而不是二叉树。
二叉树节点根据键排列在树中,每个键都附加一个值,可以整体放在同一个节点中,也可以作为指针。
答案 2 :(得分:0)
键值对存储在std::pair
中。它是一个模板化的结构;名为first
的元素存储密钥,名为second
的元素存储该值。 Some info.