self operator-(difference_type n) const
Iterator movement operator.
Return another iterator by moving this iterator backward by n elements.
difference_type operator-(const self &itr) const
Iterator distance operator.
Return the index difference of this iterator and itr, so if this iterator sits on an element with a smaller index, this call will return a negative number.
When we talk about iterator movement, we think the container is a uni-directional range, represented by [begin, end), and this is true no matter we are using iterators or reverse iterators.
When an iterator is moved closer to "begin", we say it is moved forward, otherwise we say it is moved backward.