每当我需要存储与特定类型的值(键值 - 例如字符串或其他对象)关联的一些数据时,我通常使用 C++ stdlib 映射。 stdlib 映射实现基于树,它比标准数组或 stdlib 向量提供更好的性能 (O(log n))。
我的问题是,您是否知道任何可以提供更好性能 (O(1)) 的 C++“标准”哈希表实现?类似于 Java API 中的 Hashtable 类中提供的内容。
如果您使用 C++11,您可以访问<unordered_map>
and <unordered_set>
标头。这些提供类std::unordered_map http://en.cppreference.com/w/cpp/container/unordered_map and std::unordered_set http://en.cppreference.com/w/cpp/container/unordered_set.
如果您将 C++03 与 TR1 结合使用,则可以访问这些类std::tr1::unordered_map
and std::tr1::unordered_set
,使用相同的标头(除非您使用 GCC,在这种情况下标头是<tr1/unordered_map>
and <tr1/unordered_set>
反而)。
在所有情况下,都有相应的unordered_multimap
and unordered_multiset
类型也。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)