poiuytrez3
Messages postés150Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention17 mars 2009
-
30 sept. 2007 à 09:46
poiuytrez3
Messages postés150Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention17 mars 2009
-
1 oct. 2007 à 00:22
Bonjour,
J'utilise depuis très peu de temps la stl.
J'ai un problème lors de la suppression d'un élément d'une liste.
Voici mon problème : J'ai une liste d'objet CourseSection dans lequel je dois supprimer quelques éléments.
Juste après la suppression d'un élement, le programme plante. Il semble que l'iterateur à été altéré.
Je ne vois pas comment je peux contourner le problème ou alors si quelqu'un connais une solution clean pour rechercher et enlever plusieurs éléments d'une liste.
Merci de votre aide.
Voici mon code :
// Remove a courseSection from the student
void Student1::removeCourseSection(string codeCourse)
{
// Define the iterator of the list
list<CourseSection>::iterator iterator;
// For each element of the list
for(iterator = listCourseSection.begin(); iterator != listCourseSection.end(); iterator++)
{
// Check if it is the code to find
if(iterator->getCode() == codeCourse)
// Delete the element
listCourseSection.erase(iterator);
}
}
-----------------------------------------------------------------------------------
http://www.mesdevoirs.net -- Corrections de devoirs de mathématiques en ligne
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 30 sept. 2007 à 10:49
Fréquent ce problème, suffirait de chercher un peu sur ce forum.
Règle simple: JAMAIS de boucle "for" lorsqu'on supprime des éléménts d'un conteneur.
list<CourseSection>::iterator it = listCourseSection.begin();
while ( it != listCourseSection.end())
{
if(iterator->getCode() == codeCourse)
it = listCourseSection.erase(it);
else
it++;
}
poiuytrez3
Messages postés150Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention17 mars 2009 30 sept. 2007 à 19:29
Ah, merci!!
Je vais tester!!
-----------------------------------------------------------------------------------
http://www.mesdevoirs.net -- Corrections de devoirs de mathématiques en ligne
poiuytrez3
Messages postés150Date d'inscriptiondimanche 28 septembre 2003StatutMembreDernière intervention17 mars 2009 1 oct. 2007 à 00:22
Merci en effet, ça marche à merveille.
-----------------------------------------------------------------------------------
http://www.mesdevoirs.net -- Corrections de devoirs de mathématiques en ligne