close
Пространства имён
Варианты
Действия

std::advance

Материал из cppreference.com


 
 
Библиотека итераторов
Концепты итераторов
Примитивы итераторов
Концепты алгоритмов и утилиты
Косвенно вызываемые концепты
Общие требования к алгоритмам
Утилиты
(C++20)
Адаптеры итераторов
Потоковые итераторы
Точки настройки итераторов
Операции итераторов
(C++11)
(C++11)
Доступ к диапазону
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
<tbody> </tbody>
Определено в заголовочном файле <iterator>
template< class InputIt, class Distance > void advance( InputIt& it, Distance n );

Смещение итератора it на n элементов.

Если значение n отрицальное, то итератор смещается в сторону уменьшения. В этом случае InputIt должен соответствовать требованиям BidirectionalIterator, в противном случае поведение не определено.

Параметры

it
Итератор, который необходимо передвинуть
Оригинал:
iterator to be advanced
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
n
Число элементов, на которое необходимо передвинуть it
Оригинал:
number of elements it should be advanced
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Требования к типам
-
InputIt должен соответствовать требованиям InputIterator.

Возвращаемое значение

(Нет)

Сложность

Линейная.
Оригинал:
Linear.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Однако, если InputIt дополнительно соответствует требованиям RandomAccessIterator, то сложность константна.
Оригинал:
However, if InputIt additionally meets the requirements of RandomAccessIterator, complexity is constant.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Пример

#include <iostream>
#include <iterator>
#include <vector>

int main()
{
    std::vector<int> v{ 3, 1, 7, 10 };

    auto vi = v.begin();

    std::advance(vi, 2);

    std::cout << *vi << '\n';
}

Вывод:

7

См. также

возвращает расстояние между двумя итераторами
(функция) [править]