Сдвиг итератора в C++
Иногда итератор нужно передвинуть сразу на несколько шагов.
Функция advance из
заголовка iterator меняет переданную
позицию на заданное расстояние; для вектора
это работает как прибавление индекса.
Запишем вектор, возьмем начало, сдвинем позицию на два шага и выведем элемент:
std::vector<int> v = {3, 6, 9, 12};
auto it = v.begin();
std::advance(it, 2);
std::cout << *it << "\n";
После сдвига на экран выходит 9. Тот же
прием годится для любого random-access контейнера;
для слабых категорий функция просто повторяет
шаг нужное число раз.
Постройте вектор из пяти одинаковых
меток 7. От первой позиции
перейдите к четвертому элементу и
напечатайте его значение.