A ForwardIterator is an Iterator that can read data from the pointed-to element.
Unlike InputIterator and OutputIterator, it can be used in multipass algorithms.
The type It satisfies ForwardIterator if.
It satisfies InputIterator It satisfies DefaultConstructible It provide multipass guarantee described below std::iterator_traits<It>::reference must be exactly T& if It satisfies OutputIterator (It is mutable) const T& otherwise (It is constant), T is the type denoted by std::iterator_traits<It>::value_type) And, given.
i, dereferenceable iterator of type It reference, the type denoted by std::iterator_traits<It>::reference The following expressions must be valid and have their specified effects.
| Expression | Return type | Equivalent expression | Notes |
|---|---|---|---|
i++ | It | It ip=i; ++i; return ip; | |
*i++ | reference |
A mutable ForwardIterator is a ForwardIterator that additionally satisfies the OutputIterator requirements.
Given a and b, dereferenceable iterators of type It.
a and b compare equal (a == b is contextually convertible to true) then either they are both non-dereferenceable or *a and *b are references bound to the same object ForwardIterator iterator cannot invalidate the iterator (implicit due to reference defined as a true reference) a does not change the value read from a (formally, either It is a raw pointer type or the expression (void)++It(a), *a is equivalent to the expression *a) a == b implies ++a == ++b Singular iteratorsA value-initializedForwardIterator behaves like the past-the-end iterator of some unspecified empty container: it compares equal to all value-initialized ForwardIterators of the same type. | (since C++14) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/concept/ForwardIterator