Boost C++ 库

...世界上最受推崇和专业设计的C++库项目之一。 Herb SutterAndrei Alexandrescu, 《C++ 编码标准》

PrevUpHomeNext

第29章。 Boost.PropertyTree

Marcin Kalicinski

Sebastian Redl

在 Boost 软件许可协议 1.0 版本下发布。(请参阅随附文件 LICENSE_1_0.txt 或访问 https://boost.ac.cn/LICENSE_1_0.txt 复制)

目录

什么是 Property Tree?
五分钟教程
Property Tree 作为容器
Property Tree 概要
如何填充 Property Tree
XML 解析器
JSON 解析器
INI 解析器
INFO 解析器
如何在 Property Tree 中访问数据
附录
参考
头文件 <boost/property_tree/exceptions.hpp>
头文件 <boost/property_tree/id_translator.hpp>
头文件 <boost/property_tree/info_parser.hpp>
头文件 <boost/property_tree/ini_parser.hpp>
头文件 <boost/property_tree/json_parser.hpp>
头文件 <boost/property_tree/ptree.hpp>
头文件 <boost/property_tree/ptree_fwd.hpp>
头文件 <boost/property_tree/ptree_serialization.hpp>
头文件 <boost/property_tree/stream_translator.hpp>
头文件 <boost/property_tree/string_path.hpp>
头文件 <boost/property_tree/xml_parser.hpp>

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


PrevUpHomeNext