Maison  >  Article  >  développement back-end  >  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
Patricia Arquetteoriginal
2024-11-11 01:40:03845parcourir

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);

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());

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!

Déclaration:
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