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
См. также
| возвращает расстояние между двумя итераторами (функция) |