...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Every property tree node models the ReversibleSequence concept, providing access
to its immediate children. This means that iterating over a ptree
(which is the same as its root node - every ptree
node is also the subtree it starts) iterates only a single level of the hierarchy.
There is no way to iterate over the entire tree.
It is very important to remember that the property sequence is not ordered by the key. It preserves the order of insertion. It closely resembles a std::list. Fast access to children by name is provided via a separate lookup structure. Do not attempt to use algorithms that expect an ordered sequence (like binary_search) on a node's children.
There may be multiple children with the same key value in a node. However,
these children are not necessarily sequential. The iterator returned by find
may refer to
any of these, and there are no guarantees about the relative position of the
other equally named children.