РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
379 of 815 menu

Функция generate_n

Функция generate_n из заголовочного файла algorithm заполняет диапазон значениями, которые возвращает переданный генератор. В первый параметр мы передаем итератор, указывающий на начало заполняемого диапазона, во второй - количество элементов, которые нужно сгенерировать, а в третий - функцию или функциональный объект, который будет вызываться для получения значений. Функция возвращает итератор, указывающий на элемент, следующий за последним заполненным.

Синтаксис

generate_n(first, count, gen)

Пример

Давайте заполним вектор 5 элементами, которые генерирует лямбда-функция, возвращающая последовательные числа начиная с 1:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> res(5); int counter = 1; generate_n(res.begin(), 5, [&counter]() { return counter++; }); for (int elem : res) { cout << elem << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте заполним вектор строками, которые генерирует функция, возвращающая строку "abcde":

#include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { vector<string> res(3); generate_n(res.begin(), 3, []() { return string("abcde"); }); for (const string& elem : res) { cout << elem << " "; } cout << endl; return 0; }

Результат выполнения кода:

"abcde" "abcde" "abcde"

Смотрите также

  • функция generate,
    которая заполняет диапазон значениями генератора
  • функция fill,
    которая заполняет диапазон заданным значением
  • функция fill_n,
    которая заполняет N элементов заданным значением
  • функция transform,
    которая применяет функцию к каждому элементу диапазона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить