generate_n
Assigne des valeurs générées par un objet de fonction à un nombre spécifié d'éléments dans une plage et retourne à la position une au delà de la dernière valeur assignée.
template<class OutputIterator, class Diff, class Generator>
void generate_n(
OutputIterator _First,
Diff _Count,
Generator _Gen
);
Paramètres
_First
Un itérateur de sortie adressant la position du premier élément de la fréquence selon laquelle les valeurs doivent être assignées._Count
Un type signé ou d'entier non signé indiquant le nombre d'éléments pour assigner une valeur par la fonction de générateur._Gen
Un objet de fonction appelée sans argument utilisé pour générer des valeurs à assigner à chacun des éléments dans la plage.
Notes
L'objet de fonction est appelée pour chaque élément dans la plage et n'a pas besoin de retourner la même valeur chaque fois qu'il est appelé.Il peut, par exemple, lisez dans un fichier ou pour et modifiez un état local.Le type de résultat du concepteur doit être convertible au type valeur des itérateurs en avant pendant l'intervalle.
l'intervalle référencé doit être valide ; tous les pointeurs doivent être deréférençables et, dans la séquence, la dernière position doit être accessible dès le début par l'augmentation.
La complexité est linéaire, avec exactement les appels d' _Count au concepteur est requis.
generate_n a deux formes associées :
Pour plus d'informations sur ces fonctions se comportent, consultez Itérateurs vérifiés.
Exemple
// alg_generate_n.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_n ( v1.begin ( ), 5 , 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_n ( deq1.begin ( ), 3 , rand );
cout << "Deque deq1 is ( " ;
for ( d1_Iter = deq1.begin( ) ; d1_Iter != deq1.end( ) ; d1_Iter++ )
cout << *d1_Iter << " ";
cout << ")." << endl;
}
Sortie
Vector v1 is ( 41 18467 6334 26500 19169 ).
Deque deq1 is ( 15724 11478 29358 0 0 ).
Configuration requise
en-tête : <algorithm>
l'espace de noms : DST