Функция fill_n
Функция fill_n заполняет первые n элементов,
начиная с указанного итератора, заданным значением.
В первый параметр мы передаем итератор на начало заполняемого
диапазона, во второй - количество элементов для заполнения,
а в третий - значение, которым следует заполнить элементы.
Функция возвращает итератор, указывающий на элемент,
следующий за последним заполненным. Для работы функции
необходимо подключить заголовочный файл <algorithm>.
Синтаксис
fill_n(first, count, value)
Пример
Давайте заполним 3 элемента вектора, начиная
с первого, значением 7:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
fill_n(vec.begin(), 3, 7);
for (int el : vec) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
7 7 7 4 5
Пример
Давайте заполним 4 элемента массива, начиная
со второго, символом 'x':
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
char arr[] = {'a', 'b', 'c', 'd', 'e'};
fill_n(arr + 1, 4, 'x');
for (char el : arr) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
"a x x x x"
Пример
Функция возвращает итератор на элемент, следующий за последним заполненным. Давайте выведем значение этого элемента:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
auto it = fill_n(vec.begin(), 2, 9);
cout << *it << endl;
return 0;
}
Результат выполнения кода:
3
Смотрите также
-
функция
fill,
которая заполняет весь диапазон заданным значением -
функция
copy_n,
которая копирует указанное количество элементов -
функция
generate_n,
которая заполняет элементы результатами функции -
функция
transform,
которая применяет функцию к диапазону элементов