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) |