Property Tree as a Container

Posted 用代码创造价值

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Property Tree as a Container相关的知识,希望对你有一定的参考价值。

Property Tree as a Container

每个属性树节点都建模了ReversibleSequence概念,为其直接的子节点提供了访问权。这意味着遍历一个ptree(与它的根节点相同——每个ptree节点也是它开始的子树 ) 迭代的只有层次结构的一个层次,没有办法遍历整棵树。

记住,属性序列不是由键排序的,它保留了插入的顺序,并不是一个有序的东西
它很像std::list,通过一个单独的查找结构提供给孩子的快速访问。不要尝试在上面使用排序等算法!

属性树公开了第二个容器类接口,称为关联视图。它的迭代器类型是嵌套式assoc_iterator(和它的const对应的const_assoc_iterator)。您可以使用ordered_begin()和ordered_end()来获得所有子节点的有序视图,这个东西,就是map,list等的标准的数据结构的类似的迭代器!但是是不可更改的迭代器!

关联视图还提供find()和equal_range()成员,这些成员返回assoc_iterator,但是其他方法与std的成员具有相同的语义::相同名称的map。

您可以使用to_iterator()成员函数从assoc_iterator中获得一个普通的迭代器。反过来则不行。




以上是关于Property Tree as a Container的主要内容,如果未能解决你的问题,请参考以下文章

设备树(Device Tree)

如何区分两个 boost::property_tree?

如何从 boost::property_tree 获取枚举?

在 boost::property_tree 中存储类

boost::property_tree::xml_writer_settings 的编译错误

从 boost::property_tree 读取数组出现空白