Biblioteca de algoritmos C ++ - función generate_n ()
Descripción
La función C ++ std::algorithm::generate_n()asigna el valor devuelto por llamadas sucesivas a gen a los primeros n elementos de la secuencia apuntada por el primero .
Declaración
A continuación se muestra la declaración de la función std :: algorítm :: generate_n () desde el encabezado std :: algoritmo.
C ++ 11
template <class OutputIterator, class Size, class Generator>
OutputIterator generate_n (OutputIterator first, Size n, Generator gen);
Parámetros
first - Iterador de salida a la posición inicial.
n - Número de valores a generar.
gen - Función generadora que se llama sin argumentos y devuelve algún valor.
Valor devuelto
Devuelve un iterador que apunta al elemento que sigue al último elemento cuyo valor se ha generado.
Excepciones
Lanza una excepción si la función gen o la asignación del elemento o una operación en un iterador arroja una excepción.
Tenga en cuenta que los parámetros no válidos provocan un comportamiento indefinido.
Complejidad del tiempo
Lineal.
Ejemplo
El siguiente ejemplo muestra el uso de la función std :: algorítm :: generate_n ().
#include <iostream>
#include <algorithm>
using namespace std;
int main(void) {
int arr[10] = {0, 0, 0, 0, 0, -100};
/* assign value to only first 5 elements */
auto it = generate_n(arr, 5, rand);
cout << "First five random numbers are" << endl;
for (int i = 0; i < 10; ++i)
cout << arr[i] << endl;
cout << endl;
cout << "Iterator points to " << *it << endl;
return 0;
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
First five random numbers are
1804289383
846930886
1681692777
1714636915
1957747793
-100
0
0
0
0
Iterator points to -100