Заполнение генератором в C++
Алгоритм generate вызывает переданную
функцию для каждой позиции и записывает
результат в элемент.
Состояние можно держать в статической переменной внутри лямбды или в объекте функтора. Длина диапазона задается парой итераторов. Запишем вектор из пяти чисел и выведем последовательность:
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> nums(5);
int seed = 0;
std::generate(nums.begin(), nums.end(), [&seed]() {
return ++seed;
});
for (int v : nums) {
std::cout << v << " ";
}
std::cout << "\n";
return 0;
}
Заполните вектор из четырех элементов алгоритмом generate константой 7 через лямбду без захвата и выведите значения.