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

Как правильно пользоваться итераторами? Можно ли создавать 2 итератора на 1 контейнер?

К примеру имеется вектор vector vec; с данными. Предполагается сделать гномью сортировку и поэтому в алгоритме нужно при сравнении получать доступ к текущему элементу и предыдущему одновременно. Чем лучше пользоваться: итераторами или иметь доступ к элементу вектора через индекс, как у массива (a[i - 1] < a[i]). Я имею ввиду можно ли иметь несколько итераторов на 1 контейнер. Я в принципе могу организовать все дополнительные проверки при работе с итераторами. Или в этом случае лучше индексы?

(На сайте плохая captcha, трудно понять корявые буквы, большие или или маленькие)
  • Вопрос задан
  • 271 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Nipheris
@Nipheris Куратор тега C++
Я имею ввиду можно ли иметь несколько итераторов на 1 контейнер.

Конечно можно. Инвалидация итераторов зависит от типа контейнера и операций, которые вы производите над контейнером, в документации на каждый из методов контейнера вы сможете узнать какие итераторы он инвалидирует и в каких случаях.

Чем лучше пользоваться: итераторами или иметь доступ к элементу вектора через индекс

Использование итераторов позволит вам написать алгоритм, который работает НЕ ТОЛЬКО с std::vector, но и с другими контейнерами, подпадающими под требования вашего алгоритма.
Ответ написан
@res2001
Developer, ex-admin
Можно 2 итератора. Посмотрите пример проверки на полиндром тут. Правда там строки и нет изменений контейнера.
Ответ написан
Ваш ответ на вопрос

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

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