generate
Weist die Werte, die durch ein Funktionsobjekt an jedes Element in einem Bereich generiert werden.
template<class ForwardIterator, class Generator>
void generate(
ForwardIterator _First,
ForwardIterator _Last,
Generator _Gen
);
Parameter
_First
Ein Vorwärtsiterator, der die Position des ersten Elements im Bereich behandelt, dem Werte zugewiesen werden sollen._Last
Ein Vorwärtsiterator, der die Position eine hinter dem letzten Element im Bereich behandelt, dem Werte zugewiesen werden sollen._Gen
Ein Funktionsobjekt, das ohne Argumente aufgerufen wird, das verwendet wird, um die auf jedes Element im Bereich zugewiesen werden, Werte zu generieren.
Hinweise
Das Funktionsobjekt wird für jedes Element im Bereich aufgerufen und muss nicht, um den gleichen Wert zurückgibt, wenn sie aufgerufen wird.Es beispielsweise von einer Datei lesen oder lokalen Zustand verweisen und geändert werden.Der Ergebnistyp des Generators muss dem Werttyp der Vorwärtsiteratoren für den Bereich konvertierbar sein.
Der Bereich, der verweist, muss gültig sein; alle Zeiger müssen dereferenzierbar sein, und in der Sequenz, muss die letzte Position von der ersten durch Zunahme erreichbar sein.
Die Komplexität ist, mit genau (_Last - _First) Aufrufe zum Generator linear, der erforderlich ist.
Beispiel
// 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;
}
Anforderungen
Header: <algorithm>
Namespace: std