Задать вопрос
MrNexeon
@MrNexeon

Итератор — это указатель на адрес элемента контейнера?

Суть вопроса изложена в заголовке. Мое суждение правильное? К примеру:

vector<int> vec{ 2, 5, 8 };
cout << *vec.begin(); //выведет значение первого элемента (2)


p.s. в гугле об этом не упоминается
  • Вопрос задан
  • 1347 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 3
@Alexander1705
Итератор - это не указатель. Это объект класса vector::iterator, который перегружает свои операторы так, что работа с ним выглядит так же как и с указателем. Например, он перегружает операторы разименования (*), оператор обращения к члену через указатель (->), и арифметические операторы (+ и -).

Да, ваш код выведет значение первого элемента.
Ответ написан
Olej
@Olej
инженер, программист, преподаватель
Мое суждение правильное?

Неправильное ;-)

Но вы можете обращаться с ним так, как привыкли обращаться с указателями (за счёт переопределённого оператора *, как уже сказали).
Ответ написан
Комментировать
petermzg
@petermzg
Самый лучший программист
Нет. Итератор это класс который предоставляет доступ к элементам контейнера.
Этот класс имеет переопределенный оператор
operator*()
Поэтому действие в вашем примере похоже на разыменование указателя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы