Partager via


advance

Incrémente un itérateur d'un nombre spécifié de positions.

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

Paramètres

  • InIt
    Itérateur qui doit être incrémenté et qui doit être conforme aux spécifications d'un itérateur d'entrée.

  • Off
    Type intégral pouvant être converti en type de différence de l'itérateur et qui spécifie le nombre d'incréments dont la position de l'itérateur doit être avancée.

Notes

La plage d'avance ne doit pas être singulière, là où les itérateurs doivent pouvoir être déréférencés ou au-delà de la fin.

Si InputIterator est conforme aux spécifications d'un type d'itérateur bidirectionnel, Off peut être négatif. Si InputIterator est un type d'itérateur d'entrée ou d'avance, Off ne doit pas être négatif.

La fonction d'avance a une complexité constante lorsque InputIterator est conforme aux spécifications d'un itérateur d'accès aléatoire ; dans le cas contraire, elle a une complexité linéaire et s'avère donc potentiellement coûteuse.

Exemple

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

Configuration requise

En-tête : <iterator>

Espace de noms : std

Voir aussi

Référence

advance (Exemples STL)

Bibliothèque STL (Standard Template Library)