最近发现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/