OVH Cloud OVH Cloud

tableaux multi dim et STL

2 réponses
Avatar
horneta2005
je voudrais connaitre l'equivalent pour de la STL d un tableau a 1,2 ,3
,4 dimenssion .
int tab1[9]
int tab2[9][9]
int tab3[9][9][9]
pour une utilisation la plus simple

mercie pour vos reponse

2 réponses

Avatar
Vincent Lascaux
je voudrais connaitre l'equivalent pour de la STL d un tableau a 1,2 ,3
,4 dimenssion .
int tab1[9]
int tab2[9][9]
int tab3[9][9][9]


typedef std::vector<int> TabDim1;
typedef std::vector<TabDim1> TabDim2;
typedef std::vector<TabDim3> TabDim3;

TabDim1 tab1(TabDim1::size_type(9), 0);
TabDim2 tab2(9, TabDim1(TabDim1::size_type(9), 0));
TabDim3 tab3(0, TabDim2(9, TabDim1(TabDim1::size_type(9), 0)));

Pour des tableaux de taille constante, ton code est préférable (plus simple
à lire, plus simple à comprendre, plus probable qu'une autre personne
connaisse...)

--
Vincent

Avatar
Fabien LE LEZ
On 9 Sep 2005 14:27:58 -0700, ""
:

je voudrais connaitre l'equivalent pour de la STL d un tableau a 1,2 ,3
,4 dimenssion [...]
pour une utilisation la plus simple


Y'a pas de truc vraiment simple.

Si le tableau est de taille constante, connue à la compilation, le
plus simple est d'utiliser un tableau à la C (comme tu le fais).

Si le tableau est de taille constante, mais pas connue à la
compilation, l'"empilage" de vectors convient (cf réponse de Vincent).

Si le tableau peut varier en taille, tu dois décider du comportement
(exemple : En deux dimensions, si on rajoute une ligne, est-ce que
cette nouvelle ligne a automatiquement la même taille que les
précédentes ?) puis faire une classe qui décrit ce comportement.