std::advance
Материал из cppreference.com
![]() | Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
Определено в заголовочном файле <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
[править]См. также
возвращает расстояние между двумя итераторами (функция) |