class template
<iterator>
std::iterator
template <class Category, // iterator::iterator_category class T, // iterator::value_type class Distance = ptrdiff_t, // iterator::difference_type class Pointer = T*, // iterator::pointer class Reference = T& // iterator::reference > class iterator;
Iterator base class
This is a base class template that can be used to derive iterator classes from it. It is not an iterator class and does not provide any of the functionality an iterator is expected to have.
This base class only provides some member types, which in fact are not required to be present in any iterator type (iterator types have no specific member requirements), but they might be useful, since they define the members needed for the default iterator_traits class template to generate the appropriate instantiation automatically (and such instantiation is required to be valid for all iterator types).
It is defined as:
|
|
Template parameters
- Category
- Category to which the iterator belongs to. It must be one of the following iterator tags:
- T
- Type of elements pointed by the iterator.
- Distance
- Type to represent the difference between two iterators.
- Pointer
- Type to represent a pointer to an element pointed by the iterator.
- Reference
- Type to represent a reference to an element pointed by the iterator.
Member types
| member type | definition | notes |
|---|---|---|
| iterator_category | the first template parameter (Category) | |
| value_type | the second template parameter (T) | |
| difference_type | the third template parameter (Distance) | defaults to: ptrdiff_t |
| pointer | the fourth template parameter (Pointer) | defaults to: T* |
| reference | the fifth template parameter (Reference) | defaults to: T& |
Example
|
|
Output:
See also
- <iterator>
- Iterator definitions (header)
- iterator_traits
- Iterator traits (class template)