Maison > développement back-end > C++ > Comment effacer des éléments vectoriels en fonction de la valeur en C ?

Comment effacer des éléments vectoriels en fonction de la valeur en C ?

DDD
Libérer: 2024-11-08 08:21:02
original
1182 Les gens l'ont consulté

How to Erase Vector Elements Based on Value in C  ?

Effacer des éléments vectoriels en fonction de leur valeur en C

Le problème se pose lorsque vous tentez d'effacer un élément vectoriel en fonction de sa valeur plutôt que de sa position . Considérons un vecteur avec les valeurs suivantes :

5 9 2 8 0 7
Copier après la connexion

Typiquement, nous pourrions effacer le quatrième élément contenant la valeur "8" en utilisant ce code :

myVector.erase(myVector.begin() + 4);
Copier après la connexion

Cependant, y a-t-il un plus moyen direct d'effacer un élément par sa valeur ?

std::remove() au Rescue

La fonction std::remove() entre en jeu ici. Il supprime les éléments d'une plage qui correspondent à une valeur spécifique. Combiné avec Eraser(), nous pouvons utiliser l'idiome effacer-supprimer pour atteindre notre objectif :

#include <algorithm>

...

myVector.erase(std::remove(myVector.begin(), myVector.end(), 8), myVector.end());
Copier après la connexion

Cette combinaison parcourt le vecteur, supprime toutes les instances de « 8 », puis efface la plage modifiée. Le vecteur résultant contient maintenant :

5 9 2 0 7
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal