Iterators are an abstraction created in order that you could the same approach apply to bypass a fundamentally different containers.
The implementation of iterator is a class that implements a particular interface, as you wrote. Inside the class, implement it as you want, save the state of the reference counters in the private data members of the iterator class, etc., etc. begin with the end should return a reference to the iterator. begin and end are not included in the iterator interface.