Returning & iterator вернет адрес итератора. Если вы хотите вернуть способ ссылки на элемент, верните сам итератор.
Помните, что вам не нужно, чтобы вектор был глобальным для возврата итератора / указателя, но что операции в векторе могут сделать недействительным итератор. Например, добавление элементов в вектор может переместить элементы вектора в другое положение, если новый размер () больше, чем зарезервированная память. Удаление элемента перед данным элементом из вектора заставит итератор ссылаться на другой элемент.
В обоих случаях, в зависимости от реализации STL, отладка может быть затруднена, так как случайные ошибки происходят очень часто.
РЕДАКТИРОВАТЬ после комментария: «да, я не хотел возвращать итератор а) потому что его const, и б) конечно, это только локальный, временный итератор? - Краккос '
Итераторы не более или менее локальны или временны, чем любая другая переменная, и их можно копировать. Вы можете вернуть его, и компилятор сделает копию за вас, как и с указателем.
Теперь с постоянством. Если вызывающая сторона хочет выполнить модификации через возвращаемый элемент (будь то указатель или итератор), вам следует использовать неконстантный итератор. (Просто удалите const_ из определения итератора).