Какой в этом смысл? итератор сам по себе является своего рода ссылкой на что-то внутри вектора. Вы хотите дать кому-то итератор, который вы можете изменить внутри? То есть класс, раздающий ссылку на итератор, сам увеличивает его - указывает на другую вещь в векторе - и у клиента каким-то образом есть свой итератор, указывающий на правильную вещь, потому что раньше он вызывал getElement ()? Это единственное применение ссылок на итераторы, о котором я могу думать, и оно определенно пахнет слишком плохо для меня.
Но что еще более важно, существуют серьезные проблемы с выставлением и, следовательно, сохранением итераторов. Итераторы становятся недействительными. Если у вас есть итератор для чего-то внутреннего в вашем интерфейсе, а что-то удаляет или добавляет к вектору, вы не сможете гарантировать, что клиентские итераторы все еще действительны. Затем клиент получает доступ к своему недействительному итератору и происходит неопределенное поведение - например, CRASH.