Iterator library
From Cppreference
< cpp
C++ Standard Library | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iterator library | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iterators are a generalization of pointers that allow C++ programs to access different containers in a uniform manner. Any algorithm that accepts iterators should accept regular pointers also.
Contents |
[edit] Iterator Types
Five iterator categories are defined, according to operations defined on them:
|
|
|
|
|
|
|
|
|
|
Forward iterators satisfy the requirements of input iterators
This section is incomplete |
[edit] Iterator primitives
provides uniform interface to the properties of an iterator (class template) |
|
empty class types used to indicate iterator categories (class) |
|
the basic iterator (class template) |
[edit] Iterator adaptors
iterator adaptor for reverse-order traversal (class template) |
|
(C++11)
|
iterator adaptor which dereferences to an rvalue reference (class template) |
(C++11)
|
creates a std::move_iterator of type inferred from the argument (function template) |
iterator adaptor for insertion at the end of a container (class template) |
|
creates a std::back_insert_iterator of type inferred from the argument (function template) |
|
iterator adaptor for insertion at the front of a container (class template) |
|
creates a std::front_insert_iterator of type inferred from the argument (function template) |
|
iterator adaptor for insertion into a container (class template) |
|
creates a std::insert_iterator of type inferred from the argument (function template) |
[edit] Stream iterators
input iterator that reads from std::basic_istream (class template) |
|
output iterator that writes to std::basic_ostream (class template) |
|
input iterator that reads from std::basic_streambuf (class template) |
|
output iterator that writes to std::basic_streambuf (class template) |
[edit] Iterator Operations
Defined in header <iterator>
| |
advances an iterator by given distance (function) |
|
returns the distance between two iterators (function) |
|
(C++11)
|
increment an iterator (function) |
(C++11)
|
decrement an iterator (function) |
[edit] Range Access
Defined in header <iterator>
| |
(C++11)
|
returns an iterator to the beginning of a container or array (function) |
(C++11)
|
returns an iterator to the end of a container or array (function) |