版权所有 © 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 的起源方式也相同。我们希望该库可以使许多人免于重复造轮子。