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

Comment effacer des éléments vectoriels par valeur en C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-08 13:02:02124parcourir

How to Erase Vector Elements by Value in C  ?

Effacer des éléments vectoriels par valeur en C

Lorsque vous travaillez avec des vecteurs en C, il est courant de devoir supprimer des éléments spécifiques. Généralement, cela se fait en spécifiant la position de l'élément à effacer à l'aide de Eraser(myVector.begin() 4). Cependant, il peut y avoir des cas où vous souhaitez effacer un élément en fonction de sa valeur plutôt que de sa position.

Pour y parvenir, C fournit l'idiome effacer-supprimer, qui combine std::remove() et Fonctions std::erase(). Voici un exemple de comment l'implémenter :

#include <algorithm>

int main() {
    vector<int> myVector = {5, 9, 2, 8, 0, 7};

    myVector.erase(std::remove(myVector.begin(), myVector.end(), 8), myVector.end());

    return 0;
}

La fonction std::remove() prend trois arguments : les itérateurs de début et de fin du vecteur et la valeur à supprimer. Il modifie le vecteur en déplaçant tous les éléments avec la valeur spécifiée vers la fin du vecteur, les supprimant ainsi de leurs positions d'origine.

La fonction std::erase() efface ensuite la plage d'éléments du vecteur . Dans cet exemple, il efface tous les éléments de la position renvoyée par std::remove() jusqu'à la fin du vecteur.

En utilisant l'idiome effacer-supprimer, vous pouvez facilement effacer des éléments en fonction de leur valeur, améliorer l'efficacité et la maintenabilité de votre code.

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