générer
Affecte les valeurs générées par un objet de la fonction à chaque élément dans une plage.
template<class ForwardIterator, class Generator>
void generate(
ForwardIterator _First,
ForwardIterator _Last,
Generator _Gen
);
Paramètres
_First
Un itérateur par progression adressant la position du premier élément dans l'intervalle auquel les valeurs doivent être affectées._Last
Un itérateur par progression adressant la position suivant le dernier élément dans l'intervalle auquel les valeurs doivent être affectées._Gen
Objet de la fonction qui est appelée sans arguments qui utilisé pour générer les valeurs à affecter à chacun des éléments de la plage.
Notes
L'objet de la fonction est appelé pour chaque élément de la plage et n'a pas besoin de retourner la valeur chaque fois qu'elle est appelée. Il peut, par exemple, lire un fichier ou faire référence à un état local et le modifier . Le type de résultat du générateur doit être convertible au type de valeur des itérateurs par progression de la plage.
La plage référencée doit être valide ; tous les pointeurs doivent être deréférençables et, dans la séquence, la dernière position doit être accessible à partir de la première par incrémentation.
La complexité est linéaires, avec exactement_Last (–)_First appels au générateur requis.
Exemple
// alg_generate.cpp
// compile with: /EHsc
#include <vector>
#include <deque>
#include <algorithm>
#include <iostream>
#include <ostream>
int main( )
{
using namespace std;
// Assigning random values to vector integer elements
vector <int> v1 ( 5 );
vector <int>::iterator Iter1;
deque <int> deq1 ( 5 );
deque <int>::iterator d1_Iter;
generate ( v1.begin ( ), v1.end ( ) , rand );
cout << "Vector v1 is ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")." << endl;
// Assigning random values to deque integer elements
generate ( deq1.begin ( ), deq1.end ( ) , rand );
cout << "Deque deq1 is ( " ;
for ( d1_Iter = deq1.begin( ) ; d1_Iter != deq1.end( ) ; d1_Iter++ )
cout << *d1_Iter << " ";
cout << ")." << endl;
}
Configuration requise
En-tête : <algorithme>
Espace de noms : std