Partager via


advance

Incrémente un itérateur par un nombre spécifié de caractères.

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

Paramètres

  • _InIt
    L'itérateur qui doit être incrémenté et doit satisfaire les spécifications pour un itérateur d'entrée.

  • _Off
    Un type intégral qui est convertible au type de la différence de l'itérateur et qui spécifie le nombre d'index la position de l'itérateur doit être avancé.

Notes

La plage est avancée doit être non singulier, où les itérateurs doivent être deréférençables ou à la fin.

Si InputIterator satisfait les spécifications pour un itérateur bidirectionnel tapez, puis _Off peut être négatif.Si InputIterator est une entrée ou un type en avant d'itérateur, _Off doit être non négatif.

La fonction anticipée présente la complexité constante lorsque InputIterator satisfait aux spécifications pour un itérateurs d'accès aléatoire ; sinon, il a la complexité linéaire et est 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>

l'espace de noms : DST

Voir aussi

Référence

advance (STL Samples)

Modèles Standard