<iterator>
The <iterator>
header declares classes and templates for defining and
using iterators. (See Chapter 10.)
Iterators are especially important when using the standard algorithms in
<algorithm>
.
An iterator gives a program access to the contents of a container
or other sequence, such as an I/O stream. You can think of an iterator
as an abstraction of a pointer; the syntax for using iterators resembles
that of pointers. Conceptually, an iterator points to a single element
in a container or sequence and can be advanced to the next element with
the ++
(increment) operator. The
unary *
(dereference) operator
returns the element that the iterator points to. Iterators (except for
output iterators) can be compared: two iterators are equal if they point
to the same position in the same sequence, or if they both point to one
position past the end of the same sequence.
There are five categories of iterators:
- Input iterators
Permit one pass to read a sequence. The increment operator advances to the next element, but there is no decrement operator. The dereference operator does not return an lvalue, so you can read elements but not modify them.
- Output iterators
Permit one pass to write a sequence. The increment operator advances to the next element, but there is no decrement operator. You can dereference an element only to assign a value to it. You cannot compare output iterators.
- Forward iterators
Are like a combination of an input and an output iterator. You can use a forward iterator ...
Get C++ In a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.