Я просматривал как STL std::map
реализовано. Я знал, что это реализовано с помощью Red Black Trees. Итак, мне просто было интересно узнать, как Red Black Trees реализованы в 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
Других решений пока нет …