版权所有 © 2008-2010 Marcin Kalicinski
版权所有 © 2010-2013 Sebastian Redl
根据 Boost 软件许可协议 1.0 版分发。(请参阅随附文件 LICENSE_1_0.txt 或在 https://boost.ac.cn/LICENSE_1_0.txt 处复制)
目录
Property Tree 库提供了一种数据结构,用于存储任意深度嵌套的值树,在每一层通过某个键进行索引。树的每个节点存储其自身的值,以及其子节点及其键的有序列表。该树允许通过路径轻松访问其任何节点,该路径是多个键的串联。
此外,该库还为多种可由这样的树表示的数据格式(包括 XML、INI 和 JSON)提供了解析器和生成器。
Property Tree 是通用的数据结构,但特别适合用于保存配置数据。该树提供其自身的特定于树的接口,并且每个节点对于其子节点而言也是一个 STL 兼容的序列。
从概念上讲,可以将节点视为以下结构
struct ptree { data_type data; // data associated with the node list< pair<key_type, ptree> > children; // ordered list of named children };
key_type 和 data_type 在某种程度上是可配置的,但通常是 std::string 或 std::wstring,并且解析器仅适用于这种类型的树。
许多软件项目在其生命周期的某个时刻都会开发类似的工具,而 property tree 也以相同的方式起源。我们希望该库可以避免许多人重复造轮子。