std::iterator
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <iterator> | ||
| template<      class Category, | ||
std::iterator is the base class provided to simplify definitions of the required types for iterators.
[edit] Template parameters
| Category | - | the category of the iterator. Must be one of iterator category tags. | 
| T | - | the type of the values that can be obtained by dereferencing the iterator. This type should be voidfor output iterators. | 
| Distance | - | a type that can be used to identify distance between iterators | 
| Pointer | - | defines a pointer to the type iterated over ( T) | 
| Reference | - | defines a reference to the type iterated over ( T) | 
[edit] Member types
| Member type | Definition | 
| iterator_category | Category | 
| value_type | T | 
| difference_type | Distance | 
| pointer | Pointer | 
| reference | Reference | 
[edit] See also
| provides uniform interface to the properties of an iterator (class template) | |
| empty class types used to indicate iterator categories (class) |