Maison >développement back-end >C++ >Itérateurs en C++ STL

Itérateurs en C++ STL

WBOY
WBOYoriginal
2023-08-21 20:52:431430parcourir

C++ STL (Standard Template Library) est l'une des bibliothèques standards du langage de programmation C++. Elle contient une série de structures de données et d'algorithmes standards. En STL, l'itérateur (itérateur) est un outil très important pour parcourir et accéder aux conteneurs STL.

Un itérateur est un objet similaire à un pointeur. Il peut pointer vers un élément dans un conteneur (tel qu'un vecteur, une liste, un ensemble, une carte, etc.) et peut déplacer et accéder aux éléments du conteneur. Les itérateurs jouent un rôle important dans STL. Ils ne sont pas seulement des outils pour parcourir les conteneurs, mais sont également largement utilisés dans les algorithmes, tels que le tri, la recherche, la copie et d'autres algorithmes.

Les itérateurs en STL peuvent être divisés en cinq types :

  1. Itérateur d'entrée : utilisé pour parcourir les éléments dans le conteneur, mais ne peut parcourir qu'une seule fois et ne peut pas modifier la valeur de l'élément.
  2. Output Iterator : utilisé pour écrire des éléments dans le conteneur et ne peut être parcouru qu'une seule fois.
  3. Forward Iterator : il peut avancer dans le conteneur et peut traverser plusieurs fois, mais il ne peut pas effectuer d'accès aléatoire.
  4. Itérateur bidirectionnel : il peut avancer et reculer, mais il ne peut toujours pas effectuer d'accès aléatoire.
  5. Itérateur d'accès aléatoire : peut effectuer des accès et des opérations aléatoires, et fournit toutes les opérations de pointeur, telles que l'addition, la soustraction, la comparaison, etc.

En STL, il existe deux concepts d'itérateurs : début et fin. start pointe vers le premier élément du conteneur, end pointe vers le dernier élément du conteneur et fournit également une fonction end() pour renvoyer la position suivante à la fin du conteneur, ce qui est pratique pour le parcours de boucle. De plus, STL fournit un grand nombre d'algorithmes, tels que le tri, la recherche, la copie, etc., tous implémentés sur la base d'itérateurs.

Voici un exemple de code pour parcourir à l'aide d'itérateurs :

#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<int> vec{ 1, 2, 3, 4, 5 };
    vector<int>::iterator it;
    for (it = vec.begin(); it != vec.end(); it++) {
        cout << *it << " ";
    }
    return 0;
}

Dans l'exemple ci-dessus, nous créons d'abord un conteneur vectoriel et le parcourons à l'aide d'itérateurs. vectorbd43222e33876353aff11e13a7dc75f6::iterator est le type d'itérateur du conteneur vectoriel. La position de départ du conteneur vectoriel est obtenue via vec.begin() et la position finale est obtenue via vec.end(). Utilisez une boucle for pour parcourir l'ensemble du conteneur et utilisez l'opérateur *it pour obtenir la valeur de l'élément correspondant et l'afficher.

En bref, l'itérateur est l'un des outils très importants en STL. Cela rend les conteneurs et les algorithmes en STL plus flexibles et extensibles. Que vous soyez débutant ou passionné de programmation avancée, vous devez maîtriser l'utilisation des itérateurs pour mieux utiliser les structures de données et les algorithmes en STL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn