Почему C++ STL не предоставляет никаких «древовидных» контейнеров?

Вероятно, по той же причине, что tree нет контейнера дерева в ускорении. Есть data-structures много способов реализовать cxx такой контейнер, и нет хорошего c++ способа удовлетворить всех, кто stl-containers будет его использовать.

Некоторые stl вопросы, которые следует tree учитывать:

  • Количество дочерних узлов для узла фиксированное или переменное?
  • Сколько накладных расходов на узел? - т. е. нужны ли вам родительские указатели, указатели братьев и сестер и т. д.
  • Какие алгоритмы предоставить? - разные итераторы, алгоритмы поиска и т. д.

В конечном итоге data-structures проблема заключается в том, что data-structure контейнер дерева, который cpp был бы достаточно полезен data-structure для всех, был бы слишком data-structures тяжелым, чтобы удовлетворить c++ большинство людей, использующих trees его. Если вы ищете что-то stl-containers мощное, Boost Graph Library по сути является trees надмножеством того, для чего stl-containers можно использовать древовидную stl-containers библиотеку.

Вот некоторые cpp другие общие реализации дерева:

c++

data-structures

tree

stl

2022-11-12T13:48:20+00:00