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 placeIté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
- Bases de std::vector : push_back, size, capacity
- Parcourir les vecteurs : index, range-for et itérateurs
- Modifier les vecteurs : insert, erase, clear
- Vector, std::array ou tableau C