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