Maison >développement back-end >C++ >Comment supprimer en toute sécurité les éléments d'une liste générique pendant l'itération?
Éviter les erreurs lors de la suppression des éléments d'une liste pendant l'itération:
Modification d'une liste alors que l'itération de celui-ci conduit souvent à la "collection a été modifiée; l'opération d'énumération peut ne pas exécuter l'erreur". Cela se produit parce que la suppression d'un élément invalide l'itérateur. Voici comment supprimer en toute sécurité les éléments:
Méthode 1: itération inverse
itérer en arrière empêche les problèmes d'index lors de la suppression des éléments. Cette approche fonctionne bien pour les critères d'élimination simples.
<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--) { // Check removal condition if (shouldRemove) { safePendingList.RemoveAt(i); } }</code>
Méthode 2: RemoveAll
Méthode
Pour une logique de suppression plus complexe, la méthode RemoveAll
fournit une solution plus propre. Il faut un prédicat (une fonction qui renvoie vrai si un élément doit être supprimé) et supprime efficacement tous les éléments correspondants.
<code class="language-csharp">safePendingList.RemoveAll(item => item.Value == someValue);</code>
Résumé:
Ces méthodes permettent une élimination sûre et efficace des éléments d'une liste pendant l'itération, éliminant le risque d'exceptions d'exécution. Choisissez la méthode la mieux adaptée à vos critères de suppression et à votre style de codage.
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!