Effacer des éléments vectoriels par valeur en C
Lorsque vous travaillez avec des vecteurs en C, il est courant de devoir supprimer des éléments spécifiques. Généralement, cela se fait en spécifiant la position de l'élément à effacer à l'aide de Eraser(myVector.begin() 4). Cependant, il peut y avoir des cas où vous souhaitez effacer un élément en fonction de sa valeur plutôt que de sa position.
Pour y parvenir, C fournit l'idiome effacer-supprimer, qui combine std::remove() et Fonctions std::erase(). Voici un exemple de comment l'implémenter :
#include <algorithm> int main() { vector<int> myVector = {5, 9, 2, 8, 0, 7}; myVector.erase(std::remove(myVector.begin(), myVector.end(), 8), myVector.end()); return 0; }
La fonction std::remove() prend trois arguments : les itérateurs de début et de fin du vecteur et la valeur à supprimer. Il modifie le vecteur en déplaçant tous les éléments avec la valeur spécifiée vers la fin du vecteur, les supprimant ainsi de leurs positions d'origine.
La fonction std::erase() efface ensuite la plage d'éléments du vecteur . Dans cet exemple, il efface tous les éléments de la position renvoyée par std::remove() jusqu'à la fin du vecteur.
En utilisant l'idiome effacer-supprimer, vous pouvez facilement effacer des éléments en fonction de leur valeur, améliorer l'efficacité et la maintenabilité de votre code.
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!