Freigeben über


advance

Inkrementiert einen Iterator durch eine angegebene Anzahl von Positionen.

template<class InputIterator, class Distance>
   void advance(
      InputIterator& _InIt, 
      Distance _Off
   );

Parameter

  • _InIt
    Der Iterator, der erhöht werden soll und der den Anforderungen für einen Eingabeiterator erfüllen muss.

  • _Off
    Ein ganzzahliger Typ, der dem Differenztyp des Iterators konvertierbar ist und die Anzahl von Schritten die Position des Iterators angibt, gewechselt werden soll.

Hinweise

Der Bereich erweiterte muss nicht im Singular stehende durch sein, wobei die Iteratoren dereferenzierbar oder vergangen sein müssen das Ende.

Wenn InputIterator den Anforderungen für einen Typ von bidirektionalem Iterators erfüllt wird, ist möglicherweise _Off negativ.Wenn InputIterator eine Eingabe oder ein Vorwärtsiteratortyp ist, muss _Off nicht negativ sein.

Die Vorfunktion hat konstante Komplexität, wenn InputIterator den Anforderungen für einen Iterator mit wahlfreier Zugriff definierte; andernfalls hat sie lineare Komplexität 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 Samples)

Standardvorlagenbibliothek