c++ - C++中的哈希表?

标签 c++ performance map hashtable complexity-theory

每当我需要存储与特定类型的值(键值 - 例如字符串或其他对象)关联的一些数据时,我通常使用 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_mapstd::tr1::unordered_set , 使用相同的 header (除非您使用 GCC,在这种情况下 header 是 <tr1/unordered_map><tr1/unordered_set>)。

在所有情况下,都有对应的unordered_multimapunordered_multiset类型也一样。

关于c++ - C++中的哈希表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/133569/

相关文章:

java - 是否有一个 Map 实现将内容持久保存到数据库而不是内存?

c++ - 以最通用的形式将 map 的第一个元素存储到 vector 中。最佳解决方案

c++ - 将数组中的值与第一个和最后一个数字的算术平均值进行比较

multithreading - 为什么线程越多这个程序越慢?

java - 使用云应用程序和本地私有(private)数据库

java - Java可以使用String作为索引数组键吗? (例如 : array ["a"]=1;)

java - 在 java 中转换 MFC 桌面应用程序 GUI

c++ - 扩展现有 API : Use default argument or wrapper function?

performance - 合并两个在不同机器上运行的测试报告的*.jtl文件

php - 将稀疏 json 对象解码为 php 数组