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

std::advance

Материал из cppreference.com
< cpp‎ | iterator


 
 
Библиотека итераторов
Концепты итераторов
Примитивы итераторов
Концепты алгоритмов и утилиты
Косвенно вызываемые концепты
Общие требования к алгоритмам
Утилиты
(C++20)
Адаптеры итераторов
Потоковые итераторы
Точки настройки итераторов
Операции итераторов
advance
(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)
 
Определено в заголовочном файле <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

[править]См. также

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