Probleme avec erase(iter)
Salu tt le monde
j'ai un probleme avec cette methode :
[balise ajouté par mongaulois]
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| void Labyrinthe::leCombat(Chambre *chr)
{
multimap<occupant,Occupant*>::iterator iter;
iter=chr->getPerso()->begin();
while (iter!=chr->getPerso()->end())
{
if(iter->first!=hero)
{
if(hiro->combattre(iter->second,iter->first))
//delete iter->second;
chr->getPerso()->erase(iter);
}
iter++;
}
} |
ca compile parfaitement mais je reçois une erreur d'execution liée a erase lorsque je change erase par delete ca marche parfaitement le 1er coup et au 2eme passage ca coince on dirait que l'iterateur passe par l'objet supprimé.
PS : la methode combattre retourne une valeur booleenne