Sdílet prostřednictvím


advance

Zvýší iterátor o zadaný počet pozic.

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

Parametry

  • InIt
    Iterátor, který má být zvýšen a který musí splňovat požadavky pro vstupní iterátor.

  • Off
    Integrální typ, který lze převést na typ rozdílu iterátoru a určuje počet přírůstků pozice, o které má být iterátor zvýšen.

Poznámky

Procházený rozsah nesmí být singulární, pokud musí být iterátory přesměrovatelné nebo musí následovat za koncem.

Pokud InputIterator splňuje požadavky pro typ obousměrného iterátoru, může být hodnota Off záporná.Pokud je InputIterator typ vstupního nebo dopředného iterátoru, nesmí být hodnota Off záporná.

Funkce postoupení má konstantní složitost, pokud InputIterator splňuje požadavky na iterátor s náhodným přístupem; jinak má lineární složitost a je tak potenciálně náročná.

Příklad

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

Požadavky

Hlavička: <iterator>

Obor názvů: std

Viz také

Referenční dokumentace

advance (ukázky STL)

Standardní knihovna šablon