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 ?
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() 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ù :
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!