头文件:#include<iterator>
template< class InputIt, class Distance > void advance( InputIt& it, Distance n ); | (C++17 前) |
template< class InputIt, class Distance > constexpr void advance( InputIt& it, Distance n ); | (C++17 起) |
增加给定的迭代器 it 以 n 个元素的步长。
若 n 为负,则迭代器自减。该情况下, InputIt 必须满足遗留双向迭代器 (LegacyBidirectionalIterator) 的要求,否则行为未定义。
#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';
}
运行结果: