Bonjour,
je voudrais créer un tableau à n dimensions en allouant sa mémoire dynamiquement.
Esk il y a des librairies standards pour ce genre de choses qui me rendrait la vie + simple.
Merci d'avance![]()
Bonjour,
je voudrais créer un tableau à n dimensions en allouant sa mémoire dynamiquement.
Esk il y a des librairies standards pour ce genre de choses qui me rendrait la vie + simple.
Merci d'avance![]()
oué, ya la classe vector de la STL
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include <vector>
merci, jvais me renseigner pour savoir comment ca marche.![]()
quand tu dis à n dimensions, 'n' est connu?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 vector <vector <int> > tab2D; // tableau 2D de dimensions inconnues //allocation mémoire pour le tableau de taille 1000x300 tab2D.resize(1000); for (int i=0;i<ta2D.size();i++) { tab2D[i].resize(300); } //accès aux valeurs int k = tab2D[850][125];
si v est un vecteur
quand tu veux ajouter une valeur en bout de vecteur (et donc augmenter la taille) tu fais v.push_back(valeur) (renseigne toi là dessus). le vecteur est redimensionné.
sinon tant que tu restes dans l'espace déjà réservé, tu fais un classique v[index] = valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 vector <vector <int> > tab2D; // tableau 2D de dimensions inconnues //on met les valeurs, redimensionnement dynamique int i = 0, j = 0; while (ma condition) { while (ma condition 2) { tab2D[i][j].pushback(uneValeur); j++; } i++; }
oui n est connu = 4.
J'ai trouvé une doc dessus :
http://www.cppreference.com/cppvector_details.html
Jvais essayé de m'en sortir, si j'ai un pb jvous fais signe.
Merci encore![]()
http://artis.imag.fr/Membres/Xavier..../sommaire.html
c'est en français. les parties 2 & 4 peuvent t'intéresser, en complément du lien que tu as déjà trouvé.
bon j'ai un ptit problème,
j'ai une classe et je voudrais que mon vector :
soit accessible à toute les fonctions de la classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part vector < vector < vector <int> > > ArrayValue3D;
De plus je voudrais créer mon vector en plein milieu d'1 des fonctions.
C possible ???![]()
il suffit d'en faire un attribut de la classe.je voudrais que mon vector ... soit accessible à toute les fonctions de la classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Class maClasse { protected: vector < vector < vector <int> > > ArrayValue3D; // ... mes autres attributs et méthodes protected public: //mes méthodes publics };tout est possible avec la carte Kiwi!De plus je voudrais créer mon vector en plein milieu d'1 des fonctions.
C possible ???![]()
. tu as déjà déclaré le vecteur comme attribut de la classe, il ne te reste plus qu'à lui mettre des valeurs dedans avec des push_back (redimenssionnement dynamique) ou à lui allouer de l'espace si la taille est connue avec un resize dans la méthode de ton choix:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 maMethode(mesParamètres) { //on met les valeurs, redimensionnement dynamique int i = 0, j = 0,k = 0; while (ma condition) { while (ma condition 2) { while (ma condition 3) { ArrayValue3D[i][j][k].pushback(uneValeur); k++; } j++; } i++; }
boost::multi_array<> pour les tableaux (rectangulaires) de n'importe quoi à plusieurs dimensions. Et si tu utilises la dernière version du compilateur de microsoft (dispo gratuitement en ligne), tu devrais aussi avoir accès aux bibliothèques de calcul matriciel comme Blitz++.
Ces structures sont redimensionables, mais il vaux mieux les dimensionner avant de s'en servir.
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Ca y est ca marche![]()
Merci à vous. Merci les forums. Merci Internet et vive la carte Kiwi![]()
Partager