Недвижимость Библиотека деревьев предоставляет структуру данных, которая хранит произвольно глубоко вложенное дерево значений, проиндексированных на каждом уровне некоторым ключом. Каждый узел дерева хранит свою собственную ценность, а также упорядоченный список его подузлов и их ключей. Дерево обеспечивает легкий доступ к любому из своих узлов с помощью пути, который представляет собой сцепление нескольких ключей.
Кроме того, библиотека предоставляет парсеры и генераторы для ряда форматов данных, которые могут быть представлены таким деревом, включая XML, INI и JSON.
Деревья свойств являются универсальными структурами данных, но особенно подходят для хранения конфигурационных данных. Дерево обеспечивает свой собственный, специфический для дерева интерфейс, и каждый узел также является STL-совместимой последовательностью для своих дочерних узлов.
Концептуально узел можно рассматривать как следующую структуру:
struct ptree
{
data_type data;
list< pair<key_type, ptree> > children;
};
Как key_type, так и data_type в некоторой степени настраиваются, но обычно это std::string или std::wstring, и парсеры работают только с этим типом дерева.
Многие программные проекты разрабатывают аналогичный инструмент в какой-то момент своей жизни, и дерево свойств зародилось таким же образом. Мы надеемся, что библиотека сможет спасти многих от изобретения колеса.