C ++中的散列表?
每当我需要存储与特定类型的值(键值 - 例如字符串或其他对象)相关联的一些数据时,我通常使用C ++ stdlib映射。 stdlib映射实现基于树提供比标准数组或stdlib向量更好的性能(O(log n))。
我的问题是,你是否知道任何提供更好性能的O(1))的C ++“标准”散列表实现? 类似于Java API中Hashtable类中可用的内容。
如果您使用C ++ 11,则可以访问<unordered_map>
和<unordered_set>
标题。 这些提供了std::unordered_map
和std::unordered_set
。
如果你在TR1中使用C ++ 03,你可以使用相同的头文件访问类std::tr1::unordered_map
和std::tr1::unordered_set
(除非你使用GCC,在这种情况下,头文件是<tr1/unordered_map>
和<tr1/unordered_set>
)。
在所有情况下,也有相应的unordered_multimap
和unordered_multiset
类型。
如果你还没有unordered_map或unordered_set,它们是boost的一部分。
这是两个文件。
这里提到了一个hash_map对象,但它不是stl的一部分。 这是SGI的延伸,所以如果你在STL中寻找某些东西,我认为你运气不好。
链接地址: http://www.djcxy.com/p/21427.html上一篇: Hashtable in C++?
下一篇: C++ IDE for Linux?