A path::iterator is a constant iterator satisfying all the requirements of a bidirectional iterator except that, for dereferenceable iterators a and b of type path::iterator with a == b, there is no requirement that *a and *b are bound to the same object. Its value_type is path.
Calling any non-const member function of a path object invalidates all iterators referring to elements of that object.
For the elements of the pathname in the generic format, the forward traversal order is as follows:
The root-name element, if present.
The root-directory element, if present. [ Note: The generic format is required to ensure lexicographical comparison works correctly. — end note ]
Each successive filename element, if present.
An empty element, if a trailing non-root directory-separator is present.
iterator begin() const;
Returns: An iterator for the first present element in the traversal list above. If no elements are present, the end iterator.
iterator end() const;