An “iterator” is an abstract concept that describes a specific set of operations that a type must support with specific semantics.
Pointers are iterators because they fulfill the concept of iterator (and, even stronger, a random access iterator ), for example operator++, to go to the next element and operator *to access the basic element.
[p, p+1)
, , , . ( , - .) "" , , .
, , : , std::list<T>::iterator. , , operator[].