Remplir un tableau à deux dimensions
Bonjour,
Dans mon code j'ai deux fonctions avancer et reculer et un tableau q[100][2].
- Je veux que la fonction avancer remplisse la première colonne de q.
- Je veux que la fonction reculer remplisse la seconde colonne de q.
Comment procéder en C++?
3 réponses
-
Bonjour,
Donc avancer va agir sur les q[i][0] et reculer va agir sur les q[i][1]. Je ne sais pas ce que tu appelles "remplir"?
Et en C++, on évites d'utiliser les tableaux du C. Un tableau à 2 dimensions, je l'aurais vu ici plutôt sous la forme:
std::array<std::vector<int>,2> q;
avec peut-être une fonction avancer qui ajouterait un élément de plus à q[0]
void avancer( int nb ) { q[0].push_back( nb ); } -
Salut Dalfab ,
j'ai à l'intérieur une équation pour calculer q , j'ai essayé cette méthode , je sais pas si ca fonctionne :
void main () { if (a < b) { avancer(i); qavancer(i, r); } else { reculer(i) ; qreculer(i, r); } } void qavancer(int q[100][2], int r) { q[i][0] = r + 1; } void qreculer(int q[100][2] , int r) { q[i][1] = r - 1; } -
La structure pourrait être:
std::array<std::array<int, 2>, 100> Q;
Ensuite pourquoi ne pas passer la valeur exacte aux fonctions: r+1 ou r-1 ?
Tu pourrais n'avoir qu'une seule fonction avec l'indice en paramêtre.
Faire un enum avec "avancer=0" et "reculer=1"
Et peut-être pas de fonction du tout? Une simple boucle?