Bonjour/soir
Je voudrais faire une fonction qui demande le nom d'un element d'une std::list et qui supprime cet element.
J'ai donc fais ceci: La fonction supprimeVin() appel la fonction supprime(), qui se sert de analyseNom().
Ca compile mais ça marche pas. J'ai beau chercher je ne trouve pas pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 void ListeVins::supprimeVin() { std::cout << "Entrez le nom du vin a supprimer" << '\n'; std::string leNom; std::cin >> leNom; supprime(leNom); std::list<Vin>::iterator iter; std::ofstream uneListeVins("list.txt"); uneListeVins << sesVins.size() << '\n'; uneListeVins << '\n'; for(iter=sesVins.begin(); iter!=sesVins.end(); iter++) { toStringF(uneListeVins,(*iter)); } std::cout << "Vin " << leNom << " supprime" <<'\n'; return; } void ListeVins::supprime(std::string nom) { std::list<Vin>::iterator ite; for(ite=sesVins.begin(); ite!= sesVins.end(); ite++) { if( analyseNom(*ite,nom)) sesVins.erase(ite); } return; } bool ListeVins::analyseNom(Vin v,std::string & nom) { bool reponse; if( v.getLeNom()==nom) reponse=true; else reponse=false; return reponse; }
J'ai testé de rajouter des std::cout à différents endroits, et apparemment le bug arrive apres la fonction erase() dans la boucle for.
Voilà, merci de votre aide.
Partager