c++ - std::map 的底层结构是什么?

标签 c++ algorithm optimization hashmap

<分区>

昨天有人告诉我,有序映射的底层结构是二叉搜索树。这对我来说没有意义,因为如果是这种情况,您将无法进行 O(1) 检索。谁能解释一下?

此外,如果要在不使用标准库的情况下用 C++ 实现哈希表,最好的方法是什么?

最佳答案

std::map 查找时间不是 O(1) 而是 O(log(n))。

std::unordered_map 的查找时间为 O(1) 分摊。

std::unordered_map 和 std::unordered_set 是哈希表。

关于c++ - std::map 的底层结构是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42273800/

相关文章:

c++ - 使用 C++ 中的 "new"创建的指针进行内存管理

c++ - 错误 LNK2019 : unresolved external symbol in a multiple projects solution

c++ - C++ 的 OLE 自动化问题 - "Class not registered"

c - 可预测地对单个函数进行性能分析

c++ - 在引入范围时额外调用复制 c-tor

c++ - 用模板替换 boost::function 和 boost::bind

algorithm - 平均情况内存使用 - 算法分析

c# - 如何找出两个向量之间的角度是外部角度还是内部角度? (在 3D 空间中)

algorithm - 模板匹配 - 图像减法

asp.net - 为什么Firebug中显示多个GET请求?