//contenu de tabBRUT (tableau 1 dimension de départ) 15 2 9 654 84 15 0 678 184 5 0 646 687 11 158 0 127 0 154 2 //contenu de tabTRI (tableau 2 dimensions après traitement) 15 678 646 127 154 2 184 687 2 9 5 11 654 158 84 15
Maintenant c'est vrai que les vecteurs ne sont peut être pas la bonne solution
Tu crées un std::vector<std::vector > Pour debut à fin du tableau brut Tu crées un std::vector. pour chaque case qui n'est pas 0 ajout via push_back() de l'élément au tableau fin pour Si la case est 0 ajout du tableau temporaire au tableau de tableau. fin si fin pour
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionc'est la que je dois augmenter de 1 une des dimensions de mon tableau.
on est bien d'accord que c'est un if qu'il faut faire, pas un for?
Mais comment faire quand il y'a deux dimensions?
std::vector<std::vector > tab; std::vector subTab; subTab.push_back(45); subTab.push_back(2); subTab.push_back(789); tab.push_back(subTab);
De plus avec push_back on est obligé de donner une valeur à écrire dans la case du tableau et quand moi je détecte un zéro il faudrait que je fasse un push_back sur la première dimension mais sans rien écrire dedans.
tab.push_back(subTab);
std::cout << tab(0,0) << tab(0,1) << tab(0,2);renvoie 452789?
Soit le valeurs 1, 2, 3, 0, 4, 0, 5, 6 à mettre dans un tableau à double dimensions (0 comme séparateur). J'aurais les tableaux [1, 2, 3] et [4] et [5, 6] que je met dans un tableau (qui contient des tableaux). Soit: [ [1, 2, 3], [4], [5, 6] ] Donc - À la case 0, j'ai [1, 2, 3]. Et donc à la case 0,0, j'ai 1, à la case 0,1 j'ai 2 et à la case 0,2 j'ai 3. - À la case 1, j'ai [4]. Et donc à la case 1,0 j'ai 4. - À la case 2, j'ai [5, 6]. Et donc à la case 2,0 j'ai 5, à la case 2,1 j'ai 6
typedef std::vector::const_iterator iter; std::vector tab; [...]// Du code. for (iter it = tab.begin(); it != tab.end(); ++it) std::cout << *it << std::endl;