logo

Itérateurs en C++ STL

Prérequis : Introduction aux itérateurs
Les itérateurs sont utilisés pour pointer vers les adresses mémoire de STL conteneurs. Ils sont principalement utilisés dans des séquences de nombres, de caractères, etc. Ils réduisent la complexité et le temps d'exécution du programme.

Opérations des itérateurs :-



1. commencer() :- Cette fonction est utilisée pour renvoyer le position de départ du conteneur.

2. fin() :- Cette fonction est utilisée pour renvoyer le après position finale du conteneur.








// C++ code to demonstrate the working of> // iterator, begin() and end()> #include> #include // for iterators> #include // for vectors> using> namespace> std;> int> main()> {> >vector<>int>>avec = { 1, 2, 3, 4, 5 } ;> > >// Declaring iterator to a vector> >vector<>int>>::itérateur ptr;> > >// Displaying vector elements using begin() and end()> >cout <<>'The vector elements are : '>;> >for> (ptr = ar.begin(); ptr cout << *ptr << ' '; return 0; }>

>

>

Sortir:

 The vector elements are : 1 2 3 4 5>

3. avance() :- Cette fonction est utilisée pour incrémenter la position de l'itérateur jusqu'au nombre spécifié mentionné dans ses arguments.




// C++ code to demonstrate the working of> // advance()> #include> #include // for iterators> #include // for vectors> using> namespace> std;> int> main()> {> >vector<>int>>avec = { 1, 2, 3, 4, 5 } ;> > >// Declaring iterator to a vector> >vector<>int>>::itérateur ptr = ar.begin();> > >// Using advance() to increment iterator position> >// points to 4> >advance(ptr, 3);> > >// Displaying iterator position> >cout <<>'The position of iterator after advancing is : '>;> >cout << *ptr <<>' '>;> > >return> 0;> > }>

>

>

Sortir:

 The position of iterator after advancing is : 4>

4. suivant() :- Cette fonction renvoie le nouvel itérateur que l'itérateur pointerait après faire progresser les positions mentionné dans ses arguments.

5. précédent() :- Cette fonction renvoie le nouvel itérateur que l'itérateur pointerait après avoir décrémenté les positions mentionné dans ses arguments.




// C++ code to demonstrate the working of> // next() and prev()> #include> #include // for iterators> #include // for vectors> using> namespace> std;> int> main()> {> >vector<>int>>avec = { 1, 2, 3, 4, 5 } ;> > >// Declaring iterators to a vector> >vector<>int>>::itérateur ptr = ar.begin();> >vector<>int>>::itérateur ftr = ar.end();> > > >// Using next() to return new iterator> >// points to 4> >auto> it = next(ptr, 3);> > >// Using prev() to return new iterator> >// points to 3> >auto> it1 = prev(ftr, 3);> > >// Displaying iterator position> >cout <<>'The position of new iterator using next() is : '>;> >cout << *it <<>' '>;> >cout << endl;> > >// Displaying iterator position> >cout <<>'The position of new iterator using prev() is : '>;> >cout << *it1 <<>' '>;> >cout << endl;> > >return> 0;> }>

>

balises html
>

Sortir:

 The position of new iterator using next() is : 4 The position of new iterator using prev() is : 3>


6. insérer()
:- Cette fonction est utilisée pour insérez les éléments à n'importe quelle position dans le conteneur. Il accepte 2 arguments, le conteneur et l'itérateur pour positionner là où les éléments doivent être insérés .




// C++ code to demonstrate the working of> // inserter()> #include> #include // for iterators> #include // for vectors> using> namespace> std;> int> main()> {> >vector<>int>>avec = { 1, 2, 3, 4, 5 } ;> >vector<>int>>ar1 = {10, 20, 30} ;> > >// Declaring iterator to a vector> >vector<>int>>::itérateur ptr = ar.begin();> > >// Using advance to set position> >advance(ptr, 3);> > >// copying 1 vector elements in other using inserter()> >// inserts ar1 after 3rd position in ar> >copy(ar1.begin(), ar1.end(), inserter(ar,ptr));> > >// Displaying new vector elements> >cout <<>'The new vector after inserting elements is : '>;> >for> (>int> &x : ar)> >cout << x <<>' '>;> > >return> 0;> }>

>

>

Sortir:

 The new vector after inserting elements is : 1 2 3 10 20 30 4 5>

Types d'itérateurs :

  1. Itérateurs d'entrée
  2. Itérateurs de sortie
  3. Itérateur avant
  4. Itérateurs bidirectionnels
  5. Itérateurs à accès aléatoire