函式模板
<iterator>

std::next

template <class ForwardIterator>  ForwardIterator next (ForwardIterator it,       typename iterator_traits<ForwardIterator>::difference_type n = 1);
獲取下一個元素的迭代器
返回一個指向 it 前進 n 個位置後所指向的元素的迭代器。

it 不會被修改。

如果 it 是一個 隨機訪問迭代器,則函式僅使用一次 operator+operator-。否則,函式將重複使用複製的迭代器的遞增或遞減運算子(operator++operator--),直到前進 n 個元素。

引數

it
基準位置的迭代器。
ForwardIterator 至少應為 前向迭代器
n
偏移的元素位置數(預設為 1)。
對於 隨機訪問雙向 迭代器,此值只能為負數。
difference_type 是表示 ForwardIterator 型別迭代器之間距離的數值型別。

返回值

指向距離 it n 個位置的元素的迭代器。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// next example
#include <iostream>     // std::cout
#include <iterator>     // std::next
#include <list>         // std::list
#include <algorithm>    // std::for_each

int main () {
  std::list<int> mylist;
  for (int i=0; i<10; i++) mylist.push_back (i*10);

  std::cout << "mylist:";
  std::for_each (mylist.begin(),
                 std::next(mylist.begin(),5),
                 [](int x) {std::cout << ' ' << x;} );

  std::cout << '\n';

  return 0;
}

輸出

mylist: 0 10 20 30 40


複雜度

隨機訪問迭代器 的常量。
否則,線性複雜度為 n

迭代器有效性

無效果。

資料競爭

該函式會訪問迭代器,但絕不會 解引用(呼叫時不會訪問被指向的物件)。

異常安全

如果對複製的迭代器執行的任何算術運算引發異常,則丟擲該異常,並提供與該運算相同的保證級別。

另見