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! . 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:De plus je voudrais créer mon vector en plein milieu d'1 des fonctions.
C possible ???
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager