fill_n

fill はあるシーケンスに対してイテレータで指定したところのから指定したところまで、特定の値で埋めました。

fill_n は、イテレータで開始点と、特定の値で埋める要素数を指定します。

fill_n のサンプルコード

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {

  vector<char> v;
  vector<char>::iterator i;

  for (int j = 0; j < 20; j++) {
    v.push_back('a' + j);
  }

  i = v.begin();
  while (i != v.end()) {
    cout << *i;
    ++i;
  }
  cout << endl;

  fill_n(v.begin() + 3, 5, 'X');

  i = v.begin();
  while (i != v.end()) {
    cout << *i;
    ++i;
  }
  cout << endl;

  return 0;

}

上記を実行すると次のようになります。

./a.out
abcdefghijklmnopqrst
abcXXXXXijklmnopqrst