hash_map和unordered_map的区别?
我最近发现在c ++中实现哈希映射将被称为unordered_map。 当我查找他们为什么不只是使用hash_map时,我发现显然存在着与unordered_map解决的hash_map实现相关的兼容性问题( http://en.wikipedia.org/wiki/Unordered_map_%28C%2B%2B% 29 )。 维基页面没有提供更多的信息,所以我想知道是否有人知道一些与hash_map的问题,unordered_map解决
由于在C ++标准库中没有定义哈希表,所以标准库的不同实现者将提供一个通常被称为hash_map
的非标准哈希表。 由于这些实现不是遵循标准编写的,所以它们在function和性能保证方面都有细微差别。
从C ++ 11开始,哈希表实现已被添加到C ++标准库标准中。 决定使用该类的替代名称来防止与这些非标准实现的冲突,并防止开发人员在代码中使用hash_table
无意使用新类。
所select的替代名称是unordered_map
,它确实更具描述性,因为它暗示了该类的地图接口以及其元素的无序性质。