iterator

template<class C, class T, class Dist = ptrdiff_t>
    struct iterator {
    typedef C iterator_category;
    typedef T value_type;
    typedef Dist distance_type;
    };

The template class serves as a base type for all iterators. It defines the member types iterator_category (a synonym for the template parameter C), value_type (a synonym for the template parameter T), and distance_type (a synonym for the template parameter Dist).