函式模板
<numeric>

std::iota

template <class ForwardIterator, class T>  void iota (ForwardIterator first, ForwardIterator last, T val);
儲存遞增序列
將遞增後的 val 的值依次賦給範圍 [first,last) 中的每個元素,如同每次賦值後執行 ++val

此函式模板的行為等同於
1
2
3
4
5
6
7
8
9
template <class ForwardIterator, class T>
  void iota (ForwardIterator first, ForwardIterator last, T val)
{
  while (first!=last) {
    *first = val;
    ++first;
    ++val;
  }
}

引數

first, last
正向迭代器,指向序列的初始和末尾位置。使用的範圍是 [first,last),包含 first 指向的元素,但不包含 last 指向的元素。
val
累加器的初始值。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// iota example
#include <iostream>     // std::cout
#include <numeric>      // std::iota

int main () {
  int numbers[10];

  std::iota (numbers,numbers+10,100);

  std::cout << "numbers:";
  for (int& i:numbers) std::cout << ' ' << i;
  std::cout << '\n';

  return 0;
}

輸出

numbers: 100 101 102 103 104 105 106 107 108 109


複雜度

firstlast 之間的距離成線性關係(包括增量和賦值操作)。

資料競爭

firstlast 範圍內的元素會被修改(每個元素被修改一次)。

異常

如果任何賦值或增量操作丟擲異常,則該函式也丟擲異常。
請注意,無效引數會導致未定義行為

另見