Bonjour,
j'ai un problème de platage lors d'un parcour de vecteur. ça ne plante que pour le suivant alors que j'utilise la même logique que pour le précédent. Le message d'erreur est "iterator not dereferencable" lors de l'affichage, je suppose que c'est parce que je sors du vecteur.... Logiquement ça devrait pas vu que je test si l'iterateur est egal à la fin du vecteur.
.cpp
main:
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 vector<Perso*>::iterator conteneurp::suivant() { if (ipb == dpperso.end()) cout<<"Dernier perso!"<<endl; else ipb++; return ipb; } vector<Perso*>::iterator conteneurp::precedent() { if (ipb == dpperso.begin()) cout<<"Premier perso!"<<endl; else ipb--; return ipb; }
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 vector<Perso*>::iterator ipb; //iterator de travail case '4': system("cls"); ipb=cont.suivant(); (*ipb)->AfficherPerso(); break; case '5': system("cls"); ipb=cont.precedent(); (*ipb)->AfficherPerso(); break;
Partager