Replaces n elements with a given value

You're viewing an older version of this page (#4141). View the current version.

View versions (1)

Definition

The fill_n() algorithm is defined in the standard header <algorithm> and in the nonstandard backward-compatibility header <algo.h>.

Interface

#include <algorithm>
template < class OutputIterator, class Size, class Type >
   void fill_n(
      OutputIterator first, 
      Size count, 
      const Type& val
   );

Parameters:

ParameterDescription
firstAn output iterator addressing the position of the first element in the range to be assigned the value val
countA signed or unsigned integer type specifying the number of elements to be assigned the value
valThe value to be assigned to elements in the range [first, first + count)

Description

Fill_n algorithm does the same thing that http://www.codecogs.com/reference/computing/stl/algorithms/modifying/fill.php"fill" but fills n elements.

Return Value

None.

Complexity

The complexity is linear; performs n assignments.

References

Example 1
Problem

The following program demonstrates how to use fill_n() function.

Workings
#include <vector>
#include <algorithm>
#include <iostream>

using namespace std;
 
int main()
{
  vector <int> vec;
  vector <int>::iterator Iter1;
  int i;
  for (i = 10; i <= 20; i++)
    vec.push_back(i);
  cout <<"Vector vec data: ";
  for (Iter1 = vec.begin(); Iter1 != vec.end(); Iter1++)
    cout <<*Iter1<<" ";
  cout <<endl;
  // fill the last 3 positions for 6 position with a value of 9
  cout <<"\nOperation: fill_n(vec.begin() + 3, 6, 9)\n";
  fill_n(vec.begin() + 3, 6, 9);
  cout <<"Modified vec data: ";
  for (Iter1 = vec.begin(); Iter1 != vec.end(); Iter1++)
    cout <<*Iter1<<" ";
   cout <<endl;

  return 0;
}
Solution

Output:

Vector vec data: 10 11 12 13 14 15 16 17 18 19 20
Operation: fill_n(vec.begin() + 3, 6, 9)
Modified vec data: 10 11 12 9 9 9 9 9 9 19 20

See Also