Bonjour, je cherche à créer un tableau de vecteur "statique". Dans l'idée, il y aurait un nombre de ligne infinies, mais chaque ligne n'est composée que de 4 int. Voici mon idée: vector <int[4]> ligne;
mais après je ne sais pas comment remplir ce tableau ligne par ligne... Si quelqu'un pouvait m'aiguiller.. Merci !
std::vector<std::array<int,4>> v;
// ajout direct d'une ligne avec les 4 éléments
v1.push_back({ 1, 2, 3, 4 });
// ou en préparant les données avant dans un tableau
std::array<int,4> tab;
tab = { 1, 2, 3, 4 }; // ou bien tab[0]=1; tab[1]=2; ...
v.push_back( tab );
// ou les valeurs ne sont ajoutées qu'après agrandissement du vector (non optimal)
v.push_back( {} ); // ajout d'une ligne tableau pré-rempli à zéro
std::array<int,4>& tbr = v.back(); // se placer sur la dernière ligne
tbr = { 7, 8, 9, 10 }; // remplir, ou bien : tbr[0]=1; ...
// on peut aussi ajouter en une fois N lignes ayant les même valeurs
v.resize( v.size()+N, { 1, 2, 3, 4 } ); //
// ou d'autres combinaisons ...
Et puis, mais c'est probablement équivalent, un peu de maths: la taille d'un tableau de x lignes de y colonnes est x*y, on peut donc le remplacer par un tableau de taille x*y. Il s'en suit que je peux facilement déduire une fonction p qui me donne la case du tableau en fonction de x et y:
p(x,y) = x * nombre de colonnes + y
et la fonction inverse
ip(v) = div(v /nombre de colonnes)
où div est la division entière (on dit aussi division euclidienne), celle que tu appris à l'école primaire, x est le résultat, y est le reste.
La conclusion de ça, c'est que je ne vais pas me faire chier avec un tableau 2D, un tableau 1D fera parfaitement l'affaire, ça trombe bien std::vector gère parfaitement bien les tableaux 1D
J'ai trouvé ma réponse, merci beaucoup pour votre aide !!
Tableau de vecteur
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
En recherche d'emploi.