std::generate
Материал из cppreference.com
                    
                                        
                    
                    
                                                            
                    | Определено в заголовочном файле <algorithm>
  | ||
| template< class ForwardIt, class Generator > void generate( ForwardIt first, ForwardIt last, Generator g ); | ||
Присваивает каждому элементу диапазона [first, last) значение, сгенерированное заданным функциональным объектом g.
| Содержание | 
[править] Параметры
| first, last | - | диапазон элементов для изменения | ||||||
| g | - | generator function object that will be called. The signature of the function should be equivalent to the following: 
 Тип Ret должен быть таков, что объект типа ForwardIt может быть разыменован, а результату разыменования присвоено значение типа Ret.  | ||||||
| Требования к типам | ||||||||
| - 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
[править] См. также
|  присваивает определенное значение набору элементов  Оригинал:  assigns a range of elements a certain value  Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
|  сохраняет результат N применений функции  Оригинал:  saves the result of N applications of a function  Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |


