Не совсем понятно, что должно быть реализовано для
Ну помимо перечисленного должно быть и operator+=(size_t n) и operator-=(size_t n).
Операторами ++ приходить к результату получается?
Нет, для тех контейнеров, которые random access использовать их средства, адя тех которые не поддерживают это, то да, остаётся ++)
Но это уже всё есть в стандартной библиотеке
http://en.cppreference.com/w/cpp/iterator. В частности есть специализации таких функций как
advance
distance
next
prev
Они умеют работать и с C масивами и с обычными контейнерами.
Я не совсем понимаю, как вы ваш универсальный итератор будет работать с стандартными алгоритмами? Например с std::sort?