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