C++ Algorithm fill_n()

C++ Algorithm fill_n() function is used to assign a new value to a specified number of elements in a range beginning with a particular element.

It means in fill_n(), we specify beginning position, number of elements to be filled and value to be filled.

Parameter

first: An output iterator pointing the position of the first element in the range to be assigned the value val.

val: Value which is used to fill the range.

n: Number of elements to fill it may be signed or unsigned integer type.

Return value

The first version of fill_n() return none and the second version of fill_n() return an iterator pointing to the element that follows the last element to be filled.

Complexity

Complexity is linear in n. And assigns a value to each element.

Data races

The first n object in the range pointed by first are modified.

Exception safety

This function throws an exception if the element assignments or the operation on an iterator throws an exception.

Please note that invalid parameters cause an undefined behavior.

Example 1

Let's see the simple example to demonstrate the use of fill_n():

Output:

```3,3,3,3,3,3,3,3,3,3,
```

Example 2

Let's see another simple example:

Output:

```  vector v =  ( 0 0 0 0 0 0 0 0 0 )
modified v = ( 1 1 1 0 0 0 0 0 0 )
modified v = ( 1 1 1 2 2 2 0 0 0 )
modified v = ( 1 1 1 2 2 2 3 3 3 )
```

Example 3

Let's see another simple example:

Output:

``` 1 1 1 0 0 0 0 0
1 1 1 4 4 4 0 0
```

Example 4

Let's see another simple example:

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
```

Next TopicC++ Algorithm