![]() | Home | Libraries | People | FAQ | More |
ForwardIterator
A forward iterator is an iterator that can read through a sequence of values. It is multi-pass (old values of the iterator can be re-used), and can be either mutable (data pointed to by it can be changed) or not mutable.
An iterator represents a position in a sequence. Therefore, the iterator can point into the sequence (returning a value when dereferenced and being incrementable), or be off-the-end (and not dereferenceable or incrementable).
value_type
std::iterator_traits<Iter>::value_type
The value type of the iterator
category
std::iterator_traits<Iter>::iterator_category
The category of the iterator
category must be derived from std::forward_iterator_tag.
Name | Expression | Type | Precondition | Semantics | Postcondition |
---|---|---|---|---|---|
Dereference | *i | const-if-not-mutable value_type & | i is incrementable (not off-the-end) | ||
Member access | i->{member-name} (return type is pointer-to-object type) | const-if-not-mutable value_type * | i is incrementable (not off-the-end) | ||
Preincrement | ++i | Iter & | i is incrementable (not off-the-end) | ||
Postincrement | i++ | Iter | i is incrementable (not off-the-end) | Equivalent to {Iter j = i; ++i; return j;} | i is dereferenceable or off-the-end |
All iterator operations must take amortized constant time.
&i = &(++i)
i == j implies ++i == ++j
Last revised: , at GMT | Copyright © 2001, 2002 Indiana University Copyright © 2000, 2001 University of Notre Dame du Lac Copyright © 2000 Jeremy Siek, Lie-Quan Lee, Andrew Lumsdaine Copyright © 1996-1999 Silicon Graphics Computer Systems, Inc. Copyright © 1994 Hewlett-Packard Company |