Bonjour,
j'ai créé une classe template qui utilise la classe <list>
dans cette classe j'ai une méthode qui me permet de retirer un élément a partir de son rang
j'ai une liste d'element contenant 5 elements
Code :
- // Attributs
- list<T*> _liste;
- // Méthode en question
- void retirerObjet(int numero){
- typename std::list<T*>::iterator i = _liste.begin();
- for(int n=numero; n > 0; n--) i++;
- cout << "taille:" << _liste.size()<<"\n"; // affiche: taille:5
- //i = _list.erase (i);
- _liste.erase(i);
- cout << "taille:" << _liste.size()<<"\n"; // affich: taille:4
- }
|
jusque la tout est normal sauf que quand j'appelle ma méthode à partir d'une autre classe
Code :
- cout <<"la taille avant:" << _monde->getListeP().tailleListe() <<"\n"; //affiche: "la taille avant:5"
- _monde->getListeP().retirerObjet(2);
- cout <<"la taille apres:" << _monde->getListeP().tailleListe() <<"\n"; // affiche: "la taille apres 5"
|
donc ma liste est modifié en local mais pas apres l'apel de ma méthode.
Merci à tous ceux qui pourront m'aider
Message édité par manutudescend le 16-06-2005 à 14:23:36