Maison >développement back-end >C++ >Comment puis-je supprimer efficacement des éléments avec des valeurs spécifiques d'un vecteur STL ?

Comment puis-je supprimer efficacement des éléments avec des valeurs spécifiques d'un vecteur STL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-30 18:31:12377parcourir

How Can I Efficiently Remove Elements with Specific Values from an STL Vector?

Supprimer efficacement des éléments avec des valeurs spécifiques des vecteurs STL

Supprimer un élément avec une valeur spécifique d'un vecteur STL peut apparaître comme une opération courante , mais la classe vector ne dispose pas d'une méthode dédiée pour cette tâche. Il existe cependant une solution de contournement efficace utilisant l'algorithme std::remove et la méthode containers_type::erase.

std::remove, au lieu de supprimer directement les éléments, décale les éléments à conserver vers le début du vecteur. Il renvoie ensuite un itérateur pointant vers l'élément immédiatement après ces éléments déplacés. En transmettant cet itérateur à containers_type::erase, les éléments superflus désormais situés à la fin du vecteur peuvent être rapidement supprimés.

Voici un extrait de code illustratif :

std::vector<int> vec;
// Populate 'vec' with data...

const int target_value = n;
auto erase_result = std::remove(vec.begin(), vec.end(), target_value);

vec.erase(erase_result, vec.end()); // Remove relocated elements

Cette approche identifie et élimine les éléments répondant aux critères spécifiés, garantissant un processus de manipulation vectorielle plus rationalisé.

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