C ++中的散列表?

每当我需要存储与特定类型的值(键值 - 例如字符串或其他对象)相关联的一些数据时,我通常使用C ++ stdlib映射。 stdlib映射实现基于树提供比标准数组或stdlib向量更好的性能(O(log n))。

我的问题是,你是否知道任何提供更好性能的O(1))的C ++“标准”散列表实现? 类似于Java API中Hashtable类中可用的内容。


如果您使用C ++ 11,则可以访问<unordered_map><unordered_set>标题。 这些提供了std::unordered_mapstd::unordered_set

如果你在TR1中使用C ++ 03,你可以使用相同的头文件访问类std::tr1::unordered_mapstd::tr1::unordered_set (除非你使用GCC,在这种情况下,头文件是<tr1/unordered_map><tr1/unordered_set> )。

在所有情况下,也有相应的unordered_multimapunordered_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?