Bonjour,
j'utilise pour la première fois les vecteurs et je dois faire une mauvaise manipulation puisque ma fonction plante.

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
		}
	}
}
avec une debug le plantage survient à cette ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
tabReparti[j].push_back(tabTriplet[i][1]); // on ajoute la valeur à la fin
mais je ne vois pas ce qui est mal écrit
J'ai essayé de remplacé tabReparti[j] par
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";
			}
et ma fonction va dans le catch, mais je ne comprend pas pourquoi

Auriez vous une idée ?
merci