Maison > Article > développement back-end > Comment supprimer efficacement des éléments par valeur d'un vecteur STL ?
Effacer des éléments d'un vecteur STL par valeur
Lorsque vous travaillez avec des vecteurs STL, supprimer un élément par sa valeur peut sembler être une tâche de base opération, mais il ne semble pas y avoir de méthode simple au sein de la classe vectorielle elle-même.
La fonction std::remove fournit une solution pour cette tâche courante. Cependant, il est important de noter que std::remove ne supprime pas directement les éléments du conteneur. Au lieu de cela, il repositionne les éléments qui satisfont une condition donnée au début du conteneur. Pour terminer le processus de suppression, ce conteneur modifié doit être passé à containers_type::erase pour supprimer les éléments redondants désormais situés à la fin.
Considérez l'exemple suivant :
std::vector<int> vec; // .. populate vec .. int int_to_remove = n; vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
Dans ce Par exemple, std::remove repositionne tous les éléments non égaux à int_to_remove au début du vecteur et renvoie un itérateur pointant vers le premier élément après ces éléments. Cet itérateur est ensuite utilisé comme argument pour std::erase(), supprimant ainsi les éléments restants à la fin du 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!