hash_map和unordered_map之间的区别?

时间:2009-10-29 20:15:40

标签: c++ stl hashmap unordered-map

我最近发现C ++中哈希映射的实现将被称为unordered_map

当我查找为什么他们不只是使用hash_map时,我发现显然hash_map解析了unordered_map的实现存在兼容性问题(更多关于它{{ 3}})。

该wiki页面没有提供更多信息,所以我想知道是否有人知道hash_map unordered_map解决的一些问题。

1 个答案:

答案 0 :(得分:68)

由于C ++标准库中没有定义哈希表,标准库的不同实现者将提供通常名为hash_map的非标准哈希表。因为这些实现不是按照标准编写的,所以它们在功能和性能保证方面都有细微差别。

C++11开始,哈希表实现已添加到C ++标准库标准中。决定使用该类的备用名称来防止与这些非标准实现的冲突,并防止在代码中hash_table的开发人员无意中使用新类。

所选的替代名称是unordered_map,它更具描述性,因为它暗示了类的地图界面及其元素的无序性。