From Http://zh.cppreference.com/w/cpp/iterator
The iterator library provides a definition of 5 iterators, along with an iterator feature, an adapter, and its associated tool functions.
There are 5 types of iterators: Inputiterator,outiterator,forwardinterator,bidirectionaliterator and Randomaccessiterator
The classification of iterators is not the type of iterators, but the operations supported by Iterators. In other words, a type value yo AH support the corresponding operation, it can be used as an iterator. For example, pointers support randomaccessiterator required operations, so you can use pointers wherever you need to randomaccessiterator.
There are four types of 5 iterators organized hierarchically, and the upper Randomaccessiterator supports the operations of the lower Inputiterator. If there is a requirement to support outputiterator in this 4, test the variable container.
C + + Iterator Library