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
Libérer: 2024-11-30 18:31:12
original
433 Les gens l'ont consulté

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
Copier après la connexion

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!

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