If "x" is an iterator then "*x" returns a reference on the object pointed by the iterator and "x->" is a shortcut for "(*x).". This all has nothing to do with pointers. "*" is the dereference operator.
I was going to say that it has nothing to do with iterators, but only with pointers because dereferencing is strictly related to pointers.
I'd say you could dereference anything that is a reference to something else. By dereferencing a street address, you get the house object "pointed to" by the address Iterator is such an address (but not a pointer in strict sense).
Bookmarks