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中获得一个普通的迭代器。反过来则不行。