Maison > développement back-end > C++ > Comment supprimer des éléments avec une valeur spécifique d'un vecteur STL ?

Comment supprimer des éléments avec une valeur spécifique d'un vecteur STL ?

Patricia Arquette
Libérer: 2024-11-21 05:57:09
original
965 Les gens l'ont consulté

How to Remove Elements with a Specific Value from an STL Vector?

Effacer des éléments avec une valeur spécifique du vecteur stl

Les vecteurs STL sont des conteneurs populaires en C, mais leur API ne dispose pas d'une méthode pour supprimer des éléments basés sur sur leurs valeurs. Cela soulève la question :

Comment un élément peut-il être supprimé d'un vecteur stl en fonction de sa valeur ?

Malgré l'absence de méthode dédiée dans la classe vecteur, il existe une solution utilisant les fonctions de bibliothèque standard.

Solution :

Utilisez la fonction std::remove, qui ne supprime pas directement les éléments du conteneur mais les réorganise à la place . Il déplace les éléments qui ne doivent pas être supprimés au début du conteneur et renvoie un itérateur pointant vers l'élément suivant après eux.

Pour terminer le processus de suppression, transmettez cet itérateur à containers_type::erase, qui supprime réellement les éléments supplémentaires désormais situés à l'extrémité du conteneur. Voici un exemple :

std::vector<int> vec;
// Populate the vector...
int int_to_remove = n;
vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
Copier après la connexion

Ce code utilise d'abord std::remove pour identifier et déplacer les éléments à ne pas supprimer au début du vecteur. Ensuite, vec.erase est invoqué pour supprimer définitivement ces éléments supplémentaires du conteneur.

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