Карта STL, где реализовано _Rb_tree_insert_and_rebalance?

Я просматривал как STL std::map реализовано. Я знал, что это реализовано с помощью Red Black Trees. Итак, мне просто было интересно узнать, как Red Black Trees реализованы в STL, чтобы узнать, насколько эффективна реализация.

std::map включает в себя stl_tree.h, Здесь реализовано Красное Черное Дерево.

Все функции (где происходит вставка) абстрагируют вставку и вызовы _Rb_tree_insert_and_rebalance функция. Но я не мог найти реализацию этого.

Есть идеи, где это реализовано?

1

Решение

Это полностью зависит от реализации, однако, я думаю, вы имеете в виду libstdc++Итак, поскольку реализация с открытым исходным кодом — вы можете искать эту функцию в исходных файлах. В gcc-4.8 эта функция находится в файле libstdc++-v3/src/c++98/tree.cc,
Например, вы можете найти его здесь: github gcc sources

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]