std::generate — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
|
|
||
Присваивает каждому элементу диапазона [first, last) значение, сгенерированное заданным функциональным объектом g.
Параметры
[first, last)
|
— | два итератора задающих диапазон элементов для изменения |
| g | — | generator function object that will be called.
The signature of the function should be equivalent to the following: <tbody> </tbody>Тип |
| Требования к типам | ||
-ForwardIt должен соответствовать требованиям ForwardIterator.
| ||
Возвращаемое значение
(Нет)
Сложность
Ровно std::distance(first, last) вызовов g() и присваиваний.
Возможная реализация
template<class ForwardIt, class Generator> void generate(ForwardIt first, ForwardIt last, Generator g) { while (first != last) { *first++ = g(); } }
Пример
Следующий код заполняет вектор случайными числами:
#include <algorithm> #include <iostream> #include <cstdlib> int main() { std::vector<int> v(5); std::generate(v.begin(), v.end(), std::rand); // Используем C-функцию rand() std::cout << "v: "; for (auto iv: v) { std::cout << iv << " "; } std::cout << "\n"; }
Возможный вывод:
v: 52894 15984720 41513563 41346135 51451456
См. также
| присваивает диапазону элементов определённое значение (шаблон функции) [править] | |
| присваивает результаты последовательных вызовов функции N элементам в диапазоне (шаблон функции) [править] |