我最近发现C ++中哈希映射的实现将被称为unordered_map
。
当我查找为什么他们不只是使用hash_map
时,我发现显然hash_map
解析了unordered_map
的实现存在兼容性问题(更多关于它{{ 3}})。
该wiki页面没有提供更多信息,所以我想知道是否有人知道hash_map
unordered_map
解决的一些问题。
答案 0 :(得分:68)
由于C ++标准库中没有定义哈希表,标准库的不同实现者将提供通常名为hash_map
的非标准哈希表。因为这些实现不是按照标准编写的,所以它们在功能和性能保证方面都有细微差别。
从C++11开始,哈希表实现已添加到C ++标准库标准中。决定使用该类的备用名称来防止与这些非标准实现的冲突,并防止在代码中hash_table
的开发人员无意中使用新类。
所选的替代名称是unordered_map
,它更具描述性,因为它暗示了类的地图界面及其元素的无序性。