c++ - C++ 中 STL::MAP 的内部实现

标签 c++ algorithm map stl implementation

我想知道 MAP 在 C++ 中如何可用,不是 MultiMap 只是简单的 Map,在内部实现。

我能想到的最好的是:

对于 Integer 映射:可以使用平衡二叉搜索树。

对于 String 映射:Compressed Trie 或类似的东西可以使用。

我真的很好奇,它是如何在 STL Map 中真正实现的。是使用了一些哈希函数还是与此完全不同的东西。

最佳答案

有序 容器,包括 std::map 被实现为平衡二叉树(通常是 RB 树,但任何其他平衡树都符合要求)。

对于此类问题,您需要的最重要的信息是容器中每个操作的复杂性要求,这是标准规定的。这也是最重要的答案,即只要满足复杂性要求,实际实现并不重要。

关于c++ - C++ 中 STL::MAP 的内部实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17812522/

相关文章:

c++ - 为什么对 isspace() 的调用永远不会返回 true?

c++ - 通过递归使用中点位移算法

algorithm - 在数学算法中使用多个加权属性对扫描结果进行优先排序

javascript - 将两个排序数组合并为一个

ios - 释放iOS应用中SKMap(Skobbler)的内存

c++ - 使用 OpenCV 2.4.1 显示视频

C++:operator<< 嵌套类中的重载

c++ - 不是所有控制路径都返回值吗?

c++ - 支持光栅图像的免费 G​​IS 库的建议

c++ - 我如何将 map 的反面复制到另一张 map ?