OK. Le cours ici montre std::vector avant std::array, et std::size rapidement après l’introduction du vecteur.
Mais… il ne montre pas type[dim1][dim2]
, non. Et ta boucle de ta ligne 36 (au dessus) devrait être exprimée exactement comme celle en ligne 11. EX-AC-TE-MENT. (Par contre le test en lignes 16 et 21 est faux: tu t’arrêtes à l’étagère dont le numéro courant doit être inférieur au nombre d’étagères qui est spécifié à partir de la taille de l’étagère dont le numéro est ce numéro courant. Ouch!)
Débuggue ou affiche des traces (12 trucs à afficher, c’est vite fait) dans le calcul de la moyenne des moyennes (!), tu vas vite voir que ton parcours n’est pas bon.
J’imagine que tu as essayé et que le compilateur t’a envoyé bouler. Et c’est normal car dans le contexte de paramètre de fonction type[dim1][dim2]
ce n’est pas un tableau, c’est un pointeur. Et c’est pour nous protéger que size refuse de l’accepter. Une saleté héritée du C je disais. Ca tombe bien, on a une solution: std::array…
Les solutions:
- faire du C comme la moitié du support que tu as trouvé et qui te montre le
type[d1][d2]
— ce qui est dommage si le but est d’apprendre le C++
- utiliser un bon type (array ou vector) — et probablement te poser pour bien comprendre/visualiser ce qu’est un tableau de tableaux, ce qu’exprime
tab[i]
, peu importe le nom donné à i, etc.
En effet, ton exo exige un tableau de tableaux, ou équivalent. Du coup, "je suis juste au début des tableaux dans zeste donc c’est notion double vector me sont encore inconnue …. ", il y a comme un truc qui cloche…