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 ForwardIterator s 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