Maison > développement back-end > C++ > Comment puis-je supprimer des éléments d'un vecteur C en fonction de leur valeur et non de leur position ?

Comment puis-je supprimer des éléments d'un vecteur C en fonction de leur valeur et non de leur position ?

Patricia Arquette
Libérer: 2024-11-11 01:40:03
original
899 Les gens l'ont consulté

How Can I Remove Elements from a C   Vector Based on Their Value, Not Position?

Suppression d'éléments vectoriels par valeur, pas par position

En C, lorsqu'il s'agit de vecteurs, il est courant de supprimer des éléments en utilisant leur position dans le vecteur. Par exemple, myVector.erase(myVector.begin() 4) supprime le quatrième élément.

Cependant, il peut y avoir des moments où il est plus pratique de supprimer des éléments en fonction de leur valeur plutôt que de leur position. Pour ce faire, nous pouvons exploiter la puissance de l'algorithme std::remove().

L'algorithme std::remove()

L'algorithme std::remove() est un puissant outil qui peut être utilisé pour supprimer des éléments spécifiques d’une gamme d’itérateurs. Sa syntaxe est la suivante :

template <typename ForwardIterator, typename T>
ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& value);
Copier après la connexion

où :

  • premier et dernier sont des itérateurs représentant la plage d'éléments pour rechercher la valeur.
  • la valeur est la valeur à supprimer de la plage.

Exemple d'utilisation

Pour supprimer tous les éléments avec la valeur "8" de notre vecteur, nous pouvons utiliser le code suivant :

#include <algorithm>
...
vec.erase(std::remove(vec.begin(), vec.end(), 8), vec.end());
Copier après la connexion

Cette combinaison de std::remove() et Eraser() est communément appelée idiome effacer-supprimer. C'est un moyen efficace et pratique de supprimer des éléments par valeur d'un vecteur.

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!

source:php.cn
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