Freigeben über


advance

Damit kann ein Iterator um eine bestimmte Anzahl von Positionen vorwärts verschoben werden.

template<class InputIterator, class Distance>
    void advance(
        InputIterator& InIt, 
        Distance Off
   );

Parameter

  • InIt
    Der Iterator, der vorwärts verschoben werden soll und die Anforderungen für einen Eingabeiterator erfüllen muss.

  • Off
    Ein Ganzzahltyp, der in den Differenztyp des Iterators konvertierbar ist und die Anzahl von Schritten angibt, um die die Position des Iterators vorwärts verschoben werden soll.

Hinweise

Der dabei durchlaufene Bereich darf nicht singulär sein, wobei die Iteratoren dereferenzierbar sein oder hinter dem Ende liegen müssen.

Wenn InputIterator die Anforderungen für einen bidirektionalen Iteratortyp erfüllen, dann kann Off negativ sein. Wenn InputIterator ein Eingabe- oder Forward-Iteratortyp ist, darf Off nicht negativ sein.

Die Vorwärtsfunktion weist konstante Komplexität auf, wenn InputIterator die Anforderungen für einen Random-Access-Iterator erfüllt; andernfalls weist sie lineare Komplexität auf und ist daher möglicherweise aufwändig.

Beispiel

// iterator_advance.cpp
// compile with: /EHsc
#include <iterator>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;
   int i;

   list<int> L;
   for ( i = 1 ; i < 9 ; ++i )  
   {
      L.push_back ( i );
   }
   list <int>::iterator L_Iter, LPOS = L.begin ( );

   cout << "The list L is: ( ";
   for ( L_Iter = L.begin( ) ; L_Iter != L.end( ); L_Iter++)
      cout << *L_Iter << " ";
   cout << ")." << endl;
   
   cout << "The iterator LPOS initially points to the first element: "
        << *LPOS << "." << endl;

   advance ( LPOS , 4 );
   cout << "LPOS is advanced 4 steps forward to point"
        << " to the fifth element: "
        << *LPOS << "." << endl;

   advance ( LPOS , -3 );
   cout << "LPOS is moved 3 steps back to point to the "
        << "2nd element: " << *LPOS << "." << endl;
}
  

Anforderungen

Header: <Iterator>

Namespace: std

Siehe auch

Referenz

advance (STL-Beispiele)

Standardvorlagenbibliothek