Bonjour,
Comment supprimer dans un vector de la bibliothèque STL, l'élément qui est à la position i du vecteur ?
Merci,
Christophe,
Bonjour,
Comment supprimer dans un vector de la bibliothèque STL, l'élément qui est à la position i du vecteur ?
Merci,
Christophe,
Salut,
Cela se fait en deux temps:
Récupération de l'itérateur à la position i
suppression de l'élément (pour autant que i soit dans les limites du vecteur)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 std::vector<type>::iterator it=tonvector.begin()+i;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 if(i<tonvector.size()) { tonvector.remove(it); } else { throw std::out_of_range("indice hors limites"); }
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Il n'y a pas de remove dans vector. La réponse correcte était donnée dans le message précédant.
Je vois pas trop l'intérêt de faire ça "en deux temps" comme le dit koala01.
Bonjour,
Peut-être une possiblité .
V.erase( V.begin() + pos )
Salut.
Je voulais surtout attirer l'attention sur le fait qu'il faut accéder à l'itérateur ad-hoc (premier temps) avant d'utiliser la fonction erase (deuxième temps)Envoyé par loufoque
NOTA: je m'étais effectivement trompé entre erase et remove..., mais il n'empeche qu'il est toujours préférable de vérifier si, de fait, l'index fournis n'est pas "hors limites"![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Partager