Maison >développement back-end >C++ >Comment puis-je supprimer efficacement des éléments avec des valeurs spécifiques d'un vecteur STL ?
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!