0Pricing
C++ Academy · Leçon

Parcourir les vecteurs : index, range-for et itérateurs

Parcourir un vecteur avec l’accès par index, range-for et des itérateurs explicites

Parcourir les vecteurs : index, range-for et itérateurs est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.

Trois façons d’itérer

Vous pouvez parcourir un vecteur avec :

  • Une boucle basée sur un indice for (size_t i = 0; i < v.size(); ++i)
  • Une boucle basée sur une plage for (auto& x : v)
  • Des itérateurs for (auto it = v.begin(); it != v.end(); ++it)

Boucle basée sur un indice

Cette forme est familière depuis le C. Elle est utile lorsque vous avez besoin de l’indice en plus de la valeur.

for (size_t i = 0; i < v.size(); ++i) {
    std::cout << i << ": " << v[i] << "\n";
}

size_t et int

size() renvoie un size_t — non signé. Le mélange avec un compteur int signé provoque des avertissements du compilateur et des bogues subtils. Utilisez size_t ou std::ssize de C++20.

Boucle for basée sur une plage

C’est la forme la plus claire lorsque vous n’avez pas besoin des indices. Choisissez le qualificateur de référence approprié.

for (const auto& x : v) std::cout << x << " ";   // read only
for (auto& x : v) x *= 2;                          // modify in place

Itérateurs

Un itérateur est un pointeur généralisé. v.begin() pointe vers le premier élément et v.end() vers la position située juste après le dernier.

for (auto it = v.begin(); it != v.end(); ++it) {
    std::cout << *it << " ";
}

const_iterator

Utilisez cbegin() et cend() lorsque vous n’avez pas besoin de modifier les éléments — le type d’itérateur est const_iterator.

Itérateurs inverses

rbegin() et rend() parcourent les éléments de la fin vers le début. Le déréférencement renvoie les mêmes éléments, mais dans l’ordre inverse.

for (auto it = v.rbegin(); it != v.rend(); ++it) {
    std::cout << *it << " ";
}

Arithmétique des itérateurs

Les itérateurs de vecteur permettent un accès aléatoire : vous pouvez leur additionner ou leur soustraire des entiers et les comparer avec <.

auto it = v.begin();
it += 3;          // skip 3 elements
std::cout << *it;

Les algorithmes utilisent des itérateurs

Les algorithmes de STL prennent des paires d’itérateurs. Transmettez v.begin(), v.end() à des algorithmes comme std::sort ou std::find.

#include <algorithm>
std::sort(v.begin(), v.end());
auto it = std::find(v.begin(), v.end(), 42);

Invalidation des itérateurs

Ajouter un élément à un vecteur peut provoquer une réallocation. Tous les itérateurs, pointeurs et références vers le vecteur deviennent invalides après toute opération qui modifie la capacité.

Piège : modifier pendant l’itération

N’appelez jamais push_back ou erase dans une boucle basée sur une plage parcourant le même vecteur. Construisez un nouveau vecteur ou rassemblez les indices à traiter ensuite.

Vérification rapide

Quelle forme d’itération invalide son itérateur si push_back déclenche une réallocation ?

Récapitulatif

Choisissez une boucle for basée sur une plage lorsque vous n’avez pas besoin des indices, une boucle basée sur un indice lorsque vous en avez besoin, et une boucle basée sur des itérateurs lorsque vous travaillez avec des algorithmes. Une réallocation invalide les itérateurs — n’appelez jamais push_back pendant une itération.

Questions Fréquemment Posées

La leçon « Parcourir les vecteurs : index, range-for et itérateurs » est-elle gratuite ?

Oui — le texte complet de « Parcourir les vecteurs : index, range-for et itérateurs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Parcourir les vecteurs : index, range-for et itérateurs » ?

Parcourir un vecteur avec l’accès par index, range-for et des itérateurs explicites Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C++ Academy ?

Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Parcourir les vecteurs : index, range-for et itérateurs » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?

Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Bases de std::vector : push_back, size, capacity
  2. Parcourir les vecteurs : index, range-for et itérateurs
  3. Modifier les vecteurs : insert, erase, clear
  4. Vector, std::array ou tableau C
← Retour à C++ Academy