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