C++ concepts: Iterator
Iterator concept describes types that can be used to identify and traverse the elements of a container.
Iterator is the base concept used by other iterator types:
RandomAccessIterator. Iterators can be thought of as an abstraction of pointers.
It to be an Iterator, in addition to the other requirements, the following conditions have to be satisfied for an object
i of such type: