Итераторы имеют интерфейс, который «выглядит» как указатель (но они не обязательно являются указателями, поэтому не забирайте эту метафору слишком далеко).
Итератор представляет ссылку на один фрагмент данных в контейнере. Вам нужно получить доступ к содержимому контейнера в позиции, указанной итератором. Вы можете получить доступ к содержимому в позиции it
, используя *it
. Аналогично, вы можете вызывать методы для содержимого в позиции it
(если содержимое является объектом), используя it->method()
.
Это на самом деле не относится к вашему вопросу, но это обычная ошибка, которую нужно искать (даже я все еще делаю это время от времени): если содержимое в позиции it
является указатель на объект , для вызова методов объекта, синтаксис (*it)->method()
, поскольку существует два уровня косвенности.