Salut à tous,
je débute sur C++,
à chaque fois que j'ai un problème je cherche sur le net l'erreur que m'affiche mon compilateur pour comprendre d'où vient mon erreur, mais là je sèche
je cherche à manipuler des string par le biais d'un itérateur
d'autant plus que j'ai droit à une erreur d'accès à la mémoire à la fin de l’exécution du programme... jusqu'à un core dumped...
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 { string str1("abcd"); string str2("xyz"); string::iterator it(str1.begin()); cout << *it << endl; // affiche 'a' str1.erase(it); // supprime 'a' cout << str1 << endl; // affiche "bcd" str1.insert(it, str2.begin(), str2.end()); // insert "xyz" au début de "bcd" cout << str1 << endl; // affiche donc "xyzbcd" cout << *it << endl; // affiche 'b' donc l'itérateur pointe sur 'b' str1.erase(it); // devrait donc supprimer 'b' cout << str1 << endl; // mais ici il affiche "yzbcd", il a donc supprimé 'x' !?!? }
je compile avec g++, mais il n'affiche aucune erreur à la compilation
quelqu'un aurait-il une réponse à ce comportement particulier de l'itérateur ?
Merci.
Partager