Freigeben über


Generieren

Weist die Werte, die von 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, in dem Werte zugewiesen werden sollen.

  • _Last
    Ein Vorwärtsiterator, der die Position eine hinter dem letzten Element im Bereich behandelt, in 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 aus einer Datei gelesen oder einen 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, auf den verwiesen wird, gültig sein; muss alle Zeiger müssen dereferenzierbar sein, und in der Reihenfolge, muss die letzte Position der ersten von Zunahme erreichbar sein.

Die Komplexität ist, mit genau (_Last- _First) Aufrufen 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

Siehe auch

Referenz

generate (STL-Beispiele)

Standardvorlagenbibliothek