当前位置: 代码迷 >> 综合 >> c++11:std::advance
  详细解决方案

c++11:std::advance

热度:64   发布时间:2024-03-07 11:12:48.0

头文件:#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';
}

运行结果: