Это прекрасно.Но имейте в виду, что если итератор имеет контейнер, который освобождает и перераспределяет память при изменении размера, то указатель возвращенный станет недействительным.Например, если итератор является итератором std::vector
, то iter
и &*iter
оба становятся недействительными, если базовый вектор изменяет размеры.
Кстати, название темы и то, что высказано в самой первой строке, не совпадают:
Возврат указателя от итера с использованием &*iter
(title)
У меня есть итератор иЯ хочу вернуть элемент, на который он указывает. (первая строка)
Оба они означают разные.То, что вы написали, то есть return &*iter
, это то, что вы сказали в названии.Но второе утверждение означает следующее:
return *iter;
Возвращает элемент, синтаксически которого указывает итератор *1026*.Он не возвращает указатель на элемент.Это безопасно, даже если вектор изменяет свой размер.