suppression d'un élément dans un vector - C++ - Programmation
Marsh Posté le 04-01-2005 à 17:43:04
for(vector<int>::iterator it = vecteur.begin(); it != vecteur.end(); )
{
it = vecteur.erase(it);
}
Marsh Posté le 04-01-2005 à 17:56:12
et bien c'est normal, erase efface l'élément à la position donnée. S'il n'y a pas d'éléménts ... boom
Marsh Posté le 04-01-2005 à 17:57:45
Bon, j'ai essayé avec la dernière version de gcc.
Pour moi, à partir du moment où vecteur contient au moins un élément, ce type d'écriture ne plante pas (ni à la compilation, ni à l'éxécution).
Evidemmment, si on reprend ton code tel quel (cad sans remplir vecteur), ça plante, ce qui est normal. En effet, dans un vector vide, les itérateur .begin() et .end() sont égaux et ne pointent vers rien. Il est alors normal que tu ne puisse supprimer un élément qui n'existe pas !
Marsh Posté le 04-01-2005 à 17:58:08
effectivement faudrait voir le
/*je remplis mon tableau et je l'affiche*/
Marsh Posté le 04-01-2005 à 18:46:00
ok ça marche, c'était bien les éléments qui ne se remplissaient pas merci !
Marsh Posté le 04-01-2005 à 18:52:12
une autre question tant qu'on y ait histoire que j'ouvre pas un autre topic pour si peu. J'utilise string pour mes chaines de caractère mais existe t-il une commande spécifique pour une chaine de caractère contenant des espaces ?
merci !
Marsh Posté le 04-01-2005 à 19:00:36
http://www.sgi.com/tech/stl/table_of_contents.html
est ton amis
tu regardes basic_string!
Marsh Posté le 05-01-2005 à 13:00:58
en fait après étude du problème. Le string me prend bien les espaces. C'est quand je fais :
cin>>phrase;
il ne m'enregistre que le premier mot que je tape dans le terminal. Comment faire pour enregistrer une phrase dans un string avec un cin ?
Merci !
Marsh Posté le 05-01-2005 à 18:04:12
Reply
Marsh Posté le 04-01-2005 à 17:19:17
Je fais :
Ca compile mais ça plante au niveau de la dernière ligne. Qu'en pensez vous ?
J'utilise Devc++ sous WinXP.