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

Siehe auch

Referenz

generate (STL Samples)

Standardvorlagenbibliothek