fill_n()は、コンテナの要素のうち指定した数の要素だけに値を入れます。
fill_n()は次の書式で使います。
#include<algorithm>
template void fill_n(oiter first, Size n, const T& x);
firstは最初の要素の反復子、nは値を入れる要素の数、xは要素に入れる値です。
次の例は、fill_n()を使ってvectorの先頭(v.begin())から3個の要素を値7で再初期化する例です。
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main(int argc, char* argv[])
{
vector< int > v;
int i;
for(i=0; i<5; i++)
v.push_back(i);
for(i=0; i<v.size(); i++)
cout << v[i] << " ";
cout << endl;
fill_n(v.begin(), 3, 7);
for(i=0; i<v.size(); i++)
cout << v[i] << " ";
cout << endl;
return 0;
}
実行結果は次のようになります。
0 1 2 3 4
7 7 7 3 4