Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1198 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [debutant C++] [Urgent] Tableau 2D nombre de colonne inconnu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[debutant C++] [Urgent] Tableau 2D nombre de colonne inconnu

n°1313129
o6six
Posté le 24-02-2006 à 16:24:22  profilanswer
 

Comment créer un tableau 2 dimension avec la version 6 de Visual C++ quand on ne connait pas le nombre de colonne mais que celui-ci nous est demandé au début du programme?

mood
Publicité
Posté le 24-02-2006 à 16:24:22  profilanswer
 

n°1313141
skelter
Posté le 24-02-2006 à 16:48:43  profilanswer
 

tableau à taille dynamique -> std::vector
http://www.sgi.com/tech/stl/Vector.html

n°1313149
blastman
just me !
Posté le 24-02-2006 à 16:59:46  profilanswer
 

Code :
  1. ...
  2. const int LIGNE = 100;
  3. ...
  4. cin >> COL;
  5. int tab[LIGNE][COL];


 
un truc dans le genre si j'ai bien compris ce que tu veux


---------------
http://www.blastmanu.info
n°1313156
o6six
Posté le 24-02-2006 à 17:08:37  profilanswer
 

oui c'est ça qu'il me faut mais dans la déclaration je fais comment pour déclarer tab[Nbli][Nbco]?comme Nbco n'est pas une constante?

n°1313158
blastman
just me !
Posté le 24-02-2006 à 17:14:47  profilanswer
 

et alors ? tu le déclare pas en tant que constante ou alors tu fais ca
 

Code :
  1. ...
  2. cin >> taille;
  3. const int COL = taille;
  4. int tab[LIGNE][COL];


 
note :
utiliser la STL est beaucoup mieux (cf réponse de sketler)

Message cité 1 fois
Message édité par blastman le 24-02-2006 à 17:17:10

---------------
http://www.blastmanu.info
n°1313166
o6six
Posté le 24-02-2006 à 17:29:45  profilanswer
 

j'ai pas encore fait la STL merci beaucoup pour cette aide jvais l'essayer

n°1313173
skelter
Posté le 24-02-2006 à 17:38:52  profilanswer
 

blastman a écrit :

et alors ? tu le déclare pas en tant que constante ou alors tu fais ca
 

Code :
  1. ...
  2. cin >> taille;
  3. const int COL = taille;
  4. int tab[LIGNE][COL];




 
oui mais const ou pas si la taille ne peut pas etre resolu à la compilation (essayes donc d'initialiser le tableau) c'est du vla et ce n'est pas standard


Message édité par skelter le 24-02-2006 à 17:39:15
n°1313175
o6six
Posté le 24-02-2006 à 17:43:00  profilanswer
 

int NMAX;
 cout<<"combien de restaurants ont été visités?";
 cin>>NMAX;
 
 const int NbLi=3;
 const int NbCo=NMAX;
 int Tab[NbLi][NbCo];
 int L,C;
 
La ligne en rouge pose pobleme : j'ai comme erreur :
 
.cpp(18) : error C2057: expected constant expression
.cpp(18) : error C2466: cannot allocate an array of constant size 0
.cpp(18) : error C2087: '<Unknown>' : missing subscript
Error executing cl.exe.
 
Comment le résoudre?

n°1313176
ezzz
23
Posté le 24-02-2006 à 17:50:41  profilanswer
 

peut-être en déclarant un :
 
int** Tab;
 
et en l'allouant après ?

n°1313177
Taz
bisounours-codeur
Posté le 24-02-2006 à 17:51:41  profilanswer
 

vector< vector<int> > Tab(3, vector<int>(NMAX)),

mood
Publicité
Posté le 24-02-2006 à 17:51:41  profilanswer
 

n°1313179
skelter
Posté le 24-02-2006 à 17:52:38  profilanswer
 

o6six a écrit :

int NMAX;
 cout<<"combien de restaurants ont été visités?";
 cin>>NMAX;
 
 const int NbLi=3;
 const int NbCo=NMAX;
 int Tab[NbLi][NbCo];
 int L,C;
 
La ligne en rouge pose pobleme : j'ai comme erreur :
 
.cpp(18) : error C2057: expected constant expression
.cpp(18) : error C2466: cannot allocate an array of constant size 0
.cpp(18) : error C2087: '<Unknown>' : missing subscript
Error executing cl.exe.
 
Comment le résoudre?


 
c'est ce que j'avais dis, la solution de blastman dépend du compilateur (pas standard)


Message édité par skelter le 24-02-2006 à 17:54:24
n°1325814
safi
Posté le 15-03-2006 à 14:10:27  profilanswer
 

si tu est toujours intérésse voici deux propositions
1- tu peut déclarer un tableau de taille maximale dépendant du domaine de ton travail (100,1000 ou autre ..) et n'utiliser qu'une partie de ce tableau tel que (for i=0; i<ncol;i++) {traitement} aprés avoir lu ncol  
2- ou bien l'alocation dynamique tel que proposée par xxxx mais là tu ne peut pas profiter de double indxation le tableau sera d'une seule dimension et T[i,j] devient T[i*ncol+j]
et bien sure l'alocation sefait par maloc ou caloc ou bien new tu doit revoir l'aide pour la syntaxe correcte.
merci de me répendre si ca marche ou non

n°1327550
zen 68
Posté le 17-03-2006 à 19:36:47  profilanswer
 

int **tab;
 
cin>>nbLigne
tab = new int *[nbLigne];
 
//ensuite on initialise chaque ligne  
cin>>NbCol;
tab[0]= new int[NbCol]
....
Cette solution te permet à la fois: initialiser dynamiquement nbLigne  
et initialiser chaque ligne avec un nombre colonne different
 
N'oublie pas à liberer le memoire avec  delete


Message édité par zen 68 le 17-03-2006 à 19:38:47
n°1327841
farib
Posté le 18-03-2006 à 14:04:27  profilanswer
 

Taz a écrit :

vector< vector<int> > Tab(3, vector<int>(NMAX)),


Astucieux et compact.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [debutant C++] [Urgent] Tableau 2D nombre de colonne inconnu

 

Sujets relatifs
[débutant] char* + char* = concaténerPHP MAJ table, formulaire ds un tableau
acces à une colonne d'un schema[URGENT] [C++ débutant] problème avec tableau a plusieurs dimensions
tableau dynamique croiséeEffacer un tableau d'un tableau ! ,)
Problème à la noix sur tableau de valeur JS/HTMLComment integrer un tableau html dans un pdf?
Plus de sujets relatifs à : [debutant C++] [Urgent] Tableau 2D nombre de colonne inconnu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR