


Comment supprimer en toute sécurité des éléments d'une carte C pendant l'itération ?
Dec 12, 2024 pm 03:20 PMSuppression d'éléments d'une carte pendant une itération
Lors de l'itération sur une carte, l'approche courante consiste à utiliser une boucle for basée sur une plage. Cependant, modifier la carte pendant l'itération peut entraîner un comportement inattendu, car les itérateurs deviendront invalides.
La technique recommandée pour supprimer des éléments d'une carte pendant l'itération est connue sous le nom d'« idiome d'effacement de conteneur associatif » :
1 2 3 4 5 6 7 |
|
Cet idiome garantit que l'itérateur reste valide après la suppression de l'élément en utilisant l'incrément de préfixe opérateur.
Notez qu'il est important d'utiliser une boucle for traditionnelle au lieu d'une boucle for basée sur une plage dans ce cas, car la modification du conteneur invalidera les itérateurs de la boucle basée sur une plage.
Avant C 11, il était nécessaire d'utiliser un type d'itérateur distinct lors de l'itération sur une carte pour supprimer des éléments :
1 |
|
Dans les deux cas, effacer un élément ne viole pas la constance de l'élément, car la constance en C n'affecte pas la durée de vie d'un objet.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les types de valeurs renvoyées par les fonctions du langage C? Qu'est-ce qui détermine la valeur de retour?

C Fonction Langue Format de lettre ÉTAPES DE CONVERSION DE CAS

Gulc: Cibliothèque C construite à partir de zéro

Quelles sont les définitions et les règles d'appel des fonctions du langage C et quelles sont les

Utilisation distincte et partage de phrases

Comment fonctionne la bibliothèque de modèle standard C (STL)?

Où est la valeur de retour de la fonction de langue C stockée en mémoire?

Comment utiliser efficacement les algorithmes du STL (trier, trouver, transformer, etc.)?
