每当我需要存储与特定类型的值(键值 - 例如字符串或其他对象)关联的一些数据时,我通常使用 C++ 标准库映射。 stdlib 映射实现基于树,它提供比标准数组或 stdlib vector 更好的性能 (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
, 使用相同的 header (除非您使用 GCC,在这种情况下 header 是 <tr1/unordered_map>
和 <tr1/unordered_set>
)。
在所有情况下,都有对应的unordered_multimap
和 unordered_multiset
类型也一样。
关于c++ - C++中的哈希表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/133569/