Maison >développement back-end >C++ >Pouvez-vous supprimer des éléments d'un vecteur C tout en utilisant une boucle For basée sur une plage ?
Itération et modification de vecteurs avec une boucle de plage C 11
Lors d'une boucle sur un vecteur à l'aide du for basé sur la plage de C 11, une question courante se pose : pouvez-vous supprimer un élément dans la boucle ?
Limitations du For basé sur la plage Boucles
La réponse est non, car les boucles for basées sur une plage sont conçues pour accéder à chaque élément d'un conteneur une seule fois. Si vous devez modifier le conteneur, supprimer des éléments ou effectuer des itérations non linéaires, vous devez plutôt utiliser une boucle for traditionnelle.
Modification de vecteurs avec des boucles traditionnelles
Pour supprimer un élément d'un vecteur lors d'une itération, vous pouvez utiliser une boucle for traditionnelle :
for (auto it = inv.begin(); it != inv.end(); ++it) { // Do some stuff if (blah) { it = inv.erase(it); --it; // Decrement iterator to avoid skipping an element } }
Avantages de la boucle traditionnelle Boucles
Les boucles traditionnelles offrent plus de flexibilité que les boucles for basées sur une plage :
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!