我正在查看 STLstd::map
是如何实现的。我知道它是使用红黑树实现的。所以,我只是想知道红黑树是如何在 STL 中实现的,因为我想知道实现的效率如何。
std::map
包括stl_tree.h
. 这是实现红黑树的地方。
所有函数(插入发生的地方)都抽象了插入和调用_Rb_tree_insert_and_rebalance
函数。但我找不到这个的实现。
任何想法在哪里实施?
我正在查看 STLstd::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