Bibliothèque d'algorithmes C ++ - fonction generate_n ()

La description

La fonction C ++ std::algorithm::generate_n()affecte la valeur renvoyée par les appels successifs à gen aux n premiers éléments de la séquence pointée par le premier .

Déclaration

Voici la déclaration de l'en-tête std :: algorithm :: generate_n () de la fonction std :: algorithm :: generate_n ().

C ++ 11

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

Paramètres

  • first - Sortie de l'itérateur à la position initiale.

  • n - Nombre de valeurs à générer.

  • gen - Fonction de générateur qui est appelée sans arguments et renvoie une valeur.

Valeur de retour

Renvoie un itérateur qui pointe vers l'élément qui suit le dernier élément dont la valeur a été générée.

Exceptions

Lève une exception si la fonction gen ou l'affectation d'élément ou une opération sur un itérateur lève une exception.

Veuillez noter que des paramètres non valides provoquent un comportement non défini.

Complexité temporelle

Linéaire.

Exemple

L'exemple suivant montre l'utilisation de la fonction 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

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