c++ - hash_map 和 unordered_map 的区别?

标签 c++ stl hashmap unordered-map

最近发现C++中hash map的实现会叫unordered_map

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

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

最佳答案

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

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

选择的备用名称是 unordered_map,它确实更具描述性,因为它暗示了类的 map 界面及其元素的无序性质。

关于c++ - hash_map 和 unordered_map 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1646266/

相关文章:

java - HashMap 上的搜索方法

c++ - 尝试在重载函数中获取字符和字符串的输入

c++ - 给定 QVariant,获取对某种类型变量的引用

c++ - 可变参数模板的显式模板实例化

c++ - 如何使用 C++ 中的指定位置获取 Vector 中的元素?

c++ - std::min/std::max 只保证一次评估

c++ - 可变参数模板的声明点

c++ - 具有高效 "remove"函数的数据结构

java - java中将json对象转换为tsv格式

java - 在极其庞大的数据集中查找重复项