函式模板
<algorithm>

std::fill

template <class ForwardIterator, class T>  void fill (ForwardIterator first, ForwardIterator last, const T& val);
用值填充範圍
val賦值給範圍 [first,last) 中的所有元素。

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

引數

first, last
指向序列的初始位置和末尾位置的前向迭代器,這些元素支援賦值為 T 型別值。填充的範圍是 [first,last),包含 first 指向的元素以及 firstlast 之間的所有元素,但不包含 last 指向的元素。
val
要賦給填充範圍內元素的“值”。

返回值



示例

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

int main () {
  std::vector<int> myvector (8);                       // myvector: 0 0 0 0 0 0 0 0

  std::fill (myvector.begin(),myvector.begin()+4,5);   // myvector: 5 5 5 5 0 0 0 0
  std::fill (myvector.begin()+3,myvector.end()-2,8);   // myvector: 5 5 5 8 8 8 0 0

  std::cout << "myvector contains:";
  for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';

  return 0;
}

輸出
myvector contains: 5 5 5 8 8 8 0 0


複雜度

firstlast 之間的距離成線性關係:為每個元素賦值。

資料競爭

範圍 [first,last) 中的物件會被修改(每個物件被訪問一次)。

異常

如果元素賦值或迭代器操作丟擲異常,則本函式也會丟擲異常。
請注意,無效引數會導致未定義行為

另見