gpt4 book ai didi

c++ - std::hash_set vs std::unordered_set,它们是一回事吗?

转载 作者:IT老高 更新时间:2023-10-28 22:18:14 38 4
gpt4 key购买 nike

我知道 hash_set 是非标准的,而 unordered_set 是标准的。但是,我想知道,性能方面,两者之间有什么区别?为什么要分开存在?

最佳答案

C++ 标准规定的 unordered_ 容器的复杂性要求基本上没有为实现留下太多空间,它必须是某种哈希表。该标准是在充分意识到大多数供应商已经将这些数据结构作为扩展部署的情况下编写的。

编译器供应商通常将这些容器称为“ HashMap ”或“哈希集”,这可能是您所指的(标准中没有文字 std::hash_set,但是我认为 GCC 在单独的命名空间中有一个,对于其他编译器也是如此)。

编写新标准时,作者希望避免可能与现有扩展库混淆,因此他们选择了一个反射(reflect)典型 C++ 思维方式的名称:说明它是什么,而不是它是如何实现的。无序的容器是无序的。这意味着与订购容器相比,您从它们中获得的 yield 更少,但这种减少的实用性为您提供了更有效的访问。

在实现方面,hash_set、Boost-unordered、TR1-unordered 和 C++11-unordered 将非常相似,即使不相同。

关于c++ - std::hash_set vs std::unordered_set,它们是一回事吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7623328/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com