c++ - STL Map _Rb_tree_insert_and_rebalance 在哪里实现?

标签 c++ dictionary red-black-tree

我正在查看 STL std::map 的实现方式。我知道它是使用红黑树实现的。因此,出于了解实现效率的原因,我只是想知道如何在 STL 中实现红黑树。

std::map 包括 STL_tree.h。这是实现红黑树的地方。

所有函数(插入发生的地方)抽象插入并调用_Rb_tree_insert_and_rebalance函数。但是我找不到这个的实现。

有什么实现的想法吗?

最佳答案

它完全是特定于实现的,但是,我认为您的意思是 libstdc++,因此,由于实现是开源的 - 您可以在源文件中搜索此函数。在 gcc-4.8 中,此函数位于文件 libstdc++-v3/src/c++98/tree.cc 中。 例如,您可以在这里搜索:github gcc sources

关于c++ - STL Map _Rb_tree_insert_and_rebalance 在哪里实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16853644/

相关文章:

c++ - 初始化模板类成员的问题

c++ - 使用 std::mem_fun 时如何传递两个参数?

asp.net-mvc - ASP.NET MVC 3 中 Dictionary<string, string> 的隐藏输入

algorithm - 为什么RB-Tree不能是列表呢?

c++ - 将一个函数分配给另一个

c# - 解压缩 PVRTC

c++ - 当构建有错误时,Eclipse C++ 从不运行

python - 通过列表列表中的索引计算最小值或最大值

Python 按其中一个键的值拆分字典 IndexError : index 141 is out of bounds for axis 0 with size 1