Tableau à 2 dimensions tailles inconnues - C++ - Programmation
Marsh Posté le 22-03-2006 à 14:48:32
ouais, ou bien tu utilises des types STL et tu fais des choses propres
Marsh Posté le 22-03-2006 à 15:36:31
De quelle manière puis je utiliser les types STL?
La STL est très vaste et je n'ai pas trouvé de tableaux dynamiques à 2 dimensions.
Marsh Posté le 09-04-2006 à 00:06:35
thebestdave76 a écrit : Bonjour à tous, |
Il vaut mieux procéder comme suit :
double **MatriceAlea;
void generate(int m, int n);
{
MatriceAlea=new double*[m];
for(int i=0;i<m;i++)MatriceAlea[i]=new double[n];
}
et pour détruire :
for(int i=0;i<m;i++)delete[]MatriceAlea[i];
delete[]MatriceAlea;
Marsh Posté le 09-04-2006 à 02:28:06
utilise des std::vector, c'est bien mieux. vector< vector<double> > matrice;
Marsh Posté le 22-03-2006 à 14:38:46
Bonjour à tous,
Je souhaiterai créer un tableau à 2 dimensions dont je ne connais pas la taille.
Je sais qu'il faut jouer avec les pointeurs mais je ne vois pas comment faire. J'ai écris ceci :
void generate(int m, int n);
{
double *VecteurAlea;
double **MatriceAlea;
VecteurAlea=new double[n];
MatriceAlea=new double*[m];
int i;
for(i =0;i<m;i++)
{
for(k=0;k<n;k++)
VecteurAlea[k]=(i+1)*k;
MatriceAlea[i]=VecteurAlea;
}
}
Mais comme MatriceAlea[] est un pointeur sur VecteurAlea, Elle n'est en fait constituée que de la dernière valeur du VecteurAlea. Si n=3 et m=2, MatriceAlea vaudra : 0 2 4 alors qu'il aurait du valoir 0 1 2
0 2 4 0 2 4
Comment dois je procéder SVP?
Message édité par thebestdave76 le 22-03-2006 à 14:41:22