Udostępnij za pośrednictwem


advance

Inkrementuje iterator o określoną liczbę pozycji.

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

Parametry

  • InIt
    Iterator, który ma być inkrementowany i który musi spełniać wymagania dla iteratora danych wejściowych.

  • Off
    Typ całkowitoliczbowy, który jest konwertowany na typ różnicy iteratora i który określa liczbę inkrementacji, o którą ma być zwiększone położenie iteratora.

Uwagi

Zakres zwiększania musi być niepojedynczy, a iteratory muszą być wyłuskiwalne lub znajdować się po końcu.

Jeśli InputIterator spełnia wymagania dla typu iteratora dwukierunkowego, wówczas Off może być ujemny.Jeśli InputIterator jest typem iteratora danych wejścowych lub iteratora do przodu, Off musi być nieujemny.

Funkcja zwiększania ma stałą złożoność, gdy InputIterator spełnia wymagania dotyczące iteratora dostępu swobodnego; w przeciwnym razie ma złożoność liniową i potencjalnie wymaga więcej zasobów.

Przykład

// 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;
}
  

Wymagania

Nagłówek: <iterator>

Przestrzeń nazw: std

Zobacz też

Informacje

advance (STL — Przykłady)

Standardowa biblioteka szablonów