Boost C++ 库

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

PrevUpHomeNext

属性树作为容器

每个属性树节点都模拟 ReversibleSequence 概念,从而可以访问其直接子节点。这意味着迭代 ptree(它与其根节点相同 - 每个 ptree 节点也是它开始的子树)仅迭代层次结构中的单个级别。无法迭代整个树。

非常重要的是要记住,属性序列 不是 按键排序的。它保留插入顺序。它非常类似于 std::list。通过单独的查找结构提供按名称快速访问子节点的功能。不要尝试在节点的子节点上使用期望有序序列(如 binary_search)的算法。

属性树公开了第二个类似容器的接口,称为关联视图。它的迭代器类型是嵌套类型 assoc_iterator(及其常量对应物 const_assoc_iterator)。您可以使用 ordered_begin() 和 ordered_end() 获取所有子节点的有序视图。

关联视图还提供 find() 和 equal_range() 成员,它们返回 assoc_iterators,但在其他方面具有与同名 std::map 成员相同的语义。

您可以使用 to_iterator() 成员函数从 assoc_iterator 获取普通迭代器。反向转换是不可能的。


PrevUpHomeNext