Biblioteca de algoritmos C ++ - função generate_n ()

Descrição

A função C ++ std::algorithm::generate_n()atribui o valor retornado por chamadas sucessivas a gen aos primeiros n elementos da sequência apontada pelo primeiro .

Declaração

A seguir está a declaração para o cabeçalho da função std :: algorithm :: generate_n () std :: algorithm.

C ++ 11

template <class OutputIterator, class Size, class Generator>
OutputIterator generate_n (OutputIterator first, Size n, Generator gen);

Parâmetros

  • first - Saída do iterador para a posição inicial.

  • n - Número de valores a serem gerados.

  • gen - Função geradora que é chamada sem argumentos e retorna algum valor.

Valor de retorno

Retorna um iterador que aponta para o elemento que segue o último elemento cujo valor foi gerado.

Exceções

Lança exceção se a função gen ou a atribuição de elemento ou uma operação em um iterador lança exceção.

Observe que os parâmetros inválidos causam um comportamento indefinido.

Complexidade de tempo

Linear.

Exemplo

O exemplo a seguir mostra o uso da função std :: algorithm :: 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;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

First five random numbers are
1804289383
846930886
1681692777
1714636915
1957747793
-100
0
0
0
0
Iterator points to -100