function template

std::fill_n

<algorithm>
template < class OutputIterator, class Size, class T >
  void fill_n ( OutputIterator first, Size n, const T& value );
Fill sequence with value
Sets value to the first n elements in the sequence pointed by first.

The behavior of this function template is equivalent to:
1
2
3
4
5
template < class OutputIterator, class Size, class T >
  void fill_n ( OutputIterator first, Size n, const T& value )
{
  for (; n>0; --n)  *first++ = value;
}


Parameters

first
Output iterators to the initial positions in a sequence of at least n elements.
n
Number of elements to set value to.
Its type is an integral type or some other type convertible to it.
value
Value to be used to fill the range.

Return value

none

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// fill_n example
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main () {
  vector<int> myvector (8,10);        // myvector: 10 10 10 10 10 10 10 10

  fill_n (myvector.begin(),4,20);     // myvector: 20 20 20 20 10 10 10 10
  fill_n (myvector.begin()+3,3,33);   // myvector: 20 20 20 33 33 33 10 10

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

  cout << endl;
 
  return 0;
}


Output:
myvector contains: 20 20 20 33 33 33 10 10

Complexity

Linear: Performs n assignment operations.

See also