Maison > développement back-end > C++ > Comment supprimer en toute sécurité les éléments d'une liste générique tout en itérant?

Comment supprimer en toute sécurité les éléments d'une liste générique tout en itérant?

Barbara Streisand
Libérer: 2025-01-31 01:46:09
original
735 Les gens l'ont consulté

How to Safely Remove Elements from a Generic List While Iterating?

Pendant le processus itératif, l'élément de la liste générique est supprimé en toute sécurité

Dans de nombreux scénarios de programmation, les éléments de la liste doivent être traités. Cependant, si certains éléments doivent être supprimés au cours de ce processus, la méthode standard peut avoir des problèmes.

L'utilisation de

dans le cycle provoquera des anomalies, et le compteur décroissant et l'utilisation

détruira la position de set actuelle. foreach .Remove(element) Une solution plus élégante est la liste des itérations inverses: .RemoveAt(i)

Cela garantit que l'élément de suppression n'affecte pas la position actuelle dans la liste.

for (int i = safePendingList.Count - 1; i >= 0; i--)
{
    // 处理元素

    // 如需移除元素
    // safePendingList.RemoveAt(i);
}
Copier après la connexion
ou, <> La méthode permet de filtrer l'élément en fonction du prédicat:

L'exemple suivant démontre l'utilisation de la méthode du cycle RemoveAll:

safePendingList.RemoveAll(item => item.Value == someValue);
Copier après la connexion

Sortie: for

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal