In the TCL, child iterators iterate over the immediate children of a particular node, which would be considered the parent node of those children. The child iterators are considered to be the basic type of iterators in the TCL.

Child iterators come in two varieties, child element iterators, and child node iterators. The main difference between the two is what they expose with their dereference operator and pointer operator.

The child element iterators, which are considered just child iterators, expose the underlying element within the node. These are the main iterators which are used in the TCL operations. You will commonly work with these types of iterators.

The child node iterators expose the underlying node, or subtee. The child node iterators were created mainly to work with the STL algorithms. While you can use either type of child iterators, (as well as descendant iterators) in the STL algorithms, the child node iterators allow you to perform some actions which couldn't be performed using the child element iterators.

All operations in the TCL that return iterators, return child iterators, (child element iterators) except for those special functions that are clearly named to return other typese of iterators.

Child iterators do not traverse the depth of the tree. They only traverse the immediate children of the parent. If you need iterators that traverse the depth of the tree, (the descendant's of the parent), use a descendant iterator.