我正在尝试学习C++中的映射(maps)。只是想知道STL map的实现方式。据我所知,它使用二叉搜索树。
STL中是否有哈希表的实现?
STL map如何存储键值对?
典型的STL实现基于红黑树。C++ TR1提供了std::tr1::unordered_map,它使用哈希表实现。Boost还提供了一个unordered_map哈希表的实现。
C++11现在有std::unordered_map
。
一些库实现了stdext::hash_map
,它几乎具有与std::map
相同的接口,但使用哈希表而不是二叉树。
二叉树节点按键在树中排列,并且每个键都有一个值附加,可以整体存储在同一节点中,也可以作为指针存储。
stdext::hash_map
пјЊgccжњ‰__gnucxx::hash_map
,当然在C++0xдёпјЊTR1зљ„unordered_map
将移动到std
е‘ЅеђЌз©єй—ґгЂ‚ - kennytm