Sintaxis:
#include <algorithm> void generate( forward_iterator inicio, forward_iterator fin, Generator g );
La función generate() toma valores de la función generadora g y los almacena uno por uno en el espacio de elementos entre inicio y fin.
Por ejemplo, en el siguiente código se usa la función generadora rand() de la Biblioteca Estándar para llenar un vector con elementos (pseudo-)aleatorios:
vector<int> v(5); generate(v.begin(), v.end(), rand); // llamando a la función rand() // En ciertos compiladores será necesario usar &rand cout << "v: "; for (vector<int>::size_type i = 0; i < v.size(); ++i) cout << v[i] << ' '; cout << endl;
generate_n es una función similar que llena n espacios llamando a la función generadora en vez de llenar un rango con inicio y final definidos.
Tópicos Relacionados: copy, fill, generate_n, transform