Bonjour,
J'ai un soucis concernant le parcours d'un vector de set. Je désire insérer dans un tableau 2D deux valeurs si jamais une condition est respectée. Pour cela, je déclare deux variables de type size_t pour parcourir mon tableau 2D ( vu que c'est juste le remplissage d'une ligne si une condition est respectée, je n'ai pas besoin d'iterator). Ces deux variables vont s'incrémenter au fur en a mesure du passage dans la boucle if pour éviter d’écrire sur une ligne déjà remplis.
Ci-dessous mon code :
Ensuite, j'ai un fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 typedef size_t format; typedef set< etat_t > l_format; typedef vector< etatset_t > virtuelle; Ensuite, dans une structure je déclare : struct Mat{ virtuelle virt }
Ensuite je lit dans mon code un fichier et je rentre deux valeurs dans deux variables 's' et 't' de type format.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool Test(Mat& at) { size_t i_virt=0; size_t j_virt=0;
Je réalise après un test, et j'aimerai que si cette condition est vrai, je rentre les valeurs s et t dans le tableau virt. Pour cela, je fait :
Lors de la compilation, j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if (valeur=true){ at.virt[i_virt][j_virt]=(s); at.virt[i_virt][j_virt+1]=(t); ++i_epsilon; j_epsilon=0; }
error: no match for ‘operator[]’ (operand types are ‘std::set<long unsigned int>’ and ‘size_t {aka long unsigned int}’)
at.virt[i_virt][j_virt]=(s);
error: no match for ‘operator[]’ (operand types are ‘std::set<long unsigned int>’ and ‘size_t {aka long unsigned int}’)
at.virt[i_virt][j_virt+1]=(t);
Quelqu'un aurait une idée d'où vient le problème ? Je pense que c'est mes variables pour parcourir le tableau 2D mais je ne comprend pas pourquoi .. Sinon je suis preneur pour une autre méthode pour inserer les valeurs de s et t dans mon tableau virt 2D.
Merci d'avance !
Roate!
Partager