std::advance
STD:预付款
Defined in header | | |
---|---|---|
template< class InputIt, class Distance > void advance( InputIt& it, Distance n | | (until C++17) |
template< class InputIt, class Distance > constexpr void advance( InputIt& it, Distance n | | (since C++17) |
给定迭代器增量it
通过n
元素。
如果n
是负的,迭代器就会减少。在这种情况下,InputIt
必须符合BidirectionalIterator
,否则行为就没有定义。
参数
it | - | iterator to be advanced |
---|---|---|
n | - | number of elements it should be advanced |
类型要求
-输入必须符合输入器的要求。
返回值
%280%29
复杂性
线性的。
但是,如果InputIt
额外满足RandomAccessIterator
,复杂性是不变的。
注记
如果指定的增量或递减序列要求非增量迭代器%28(如过去的结束迭代器%29)递增,或者不递减迭代器%28(如前迭代器或奇异迭代器%29)减少,则行为未定义。
例
二次
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
std::vector<int> v{ 3, 1, 4 };
auto vi = v.begin(
std::advance(vi, 2
std::cout << *vi << '\n';
}
二次
产出:
二次
4
二次
另见
next (C++11) | increment an iterator (function) |
---|---|
distance | returns the distance between two iterators (function) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。