每当我需要存储与特定类型的值(键值 - 例如字符串或其他对象)相关联的一些数据时,我通常使用C++ stdlib映射.stdlib映射实现基于树,它提供比标准数组或stdlib向量更好的性能(O(log n)).
我的问题是,你知道任何C++"标准"哈希表实现提供更好的性能(O(1))吗?类似于Java API中Hashtable类中可用的内容.
如果您使用的是C++ 11,则可以访问
和
标题.这些提供课程std::unordered_map
和std::unordered_set
.
如果您使用C++ 03有TR1,您可以访问类std::tr1::unordered_map
和std::tr1::unordered_set
使用相同的头文件(除非你使用GCC,在这种情况下,头是
和
代替).
在所有情况下,也有相应的unordered_multimap
和unordered_multiset
类型.
如果您还没有unordered_map或unordered_set,则它们是boost的一部分.
这是两者的文档.