Bonjour,
j'utilise pour la première fois les vecteurs et je dois faire une mauvaise manipulation puisque ma fonction plante.
avec une debug le plantage survient à cette ligne
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 void repartition(string tabTriplet[][3], vector< vector<string> > tabReparti) { for(int i=0; i<64; i++) { vector<string> temp; bool trouve = false; for(int j=0; j<tabReparti.size() && trouve==false; j++) { if( tabTriplet[i][2] == tabReparti[j][0] ) trouve = true; } if( trouve == false ) { // si on rencontre cette chaine binaire pour la premiere fois temp.push_back(tabTriplet[i][2]); // chaine binaire temp.push_back(tabTriplet[i][1]); // valeur pour laquelle on a cette chaine tabReparti.push_back(temp); } else { // la chaine est deja été rencontrée tabReparti[j].push_back(tabTriplet[i][1]); // on ajoute la valeur à la fin } } }
mais je ne vois pas ce qui est mal écrit
Code : Sélectionner tout - Visualiser dans une fenêtre à part tabReparti[j].push_back(tabTriplet[i][1]); // on ajoute la valeur à la fin
J'ai essayé de remplacé tabReparti[j] par
et ma fonction va dans le catch, mais je ne comprend pas pourquoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 try { tabReparti.at(j).push_back(tabTriplet[i][1]); // on ajoute la valeur à la fin } catch ( const std::out_of_range & ) { cout << "at() a levé une exception std::out_of_range\n"; }
Auriez vous une idée ?
merci![]()
Partager