[C++] Initialiser un tableau bidimensionnel

zzzer Messages postés 938 Statut Membre -  
 pamputt -
Bonjour,

J'ai, dans une classe, un tableau déclaré comme ceci :
static bool dejaUtilisees[13][4];
Et j'aimerais savoir s'il est possible d'initialiser tous ses éléments sans faire de boucle, avec un truc du genre
static bool dejaUtilisees[13][4] = {false, false};
(ceci ne fonctionnant pas).

Merci d'avance !

A voir également:

5 réponses

artragis Messages postés 510 Statut Membre 146
 
effectivement, initialiser avec une boucle est plus simple et permet de mettre des conditions. sinon je pense que
dejaUtilisé[][]=false peut marche, mais de là à être sur...
sinon ça serait plutôt dejaUtilisé{false}{false} mais bon, de part sa nature, le tableau bi dimenntionnel ne l'accepte pas à mon avis donc je te conseil de t'en remettre à la boucle ce qui est très simple, et de toute façon, ça ne ralentit pas l'ordinateur (en effet il la fera de toute manière...)
0
zzzer Messages postés 938 Statut Membre 181
 
Mais comment faire en sorte que ce tableau soit initialisé dès le chargement de la classe, avec une boucle ?

En gros, où la mettre ?

0
artragis Messages postés 510 Statut Membre 146
 
bah pour l'initialiser 2 cas

=>tu veux qu'ils aient tous la même valeur (ex true/false, 0)

typedevariable tontableau[][]=new typedevariable[nb1erindice][nb2emeindice];
int i;
int j;
for(i=0;i<tonindice2;i++){

    for(j=0;j<tonindice1;j++){
       tontableau[j][i]=false/0
    }
}


=>si tu veux que certaines valeur ne soient pas 0 (mais bon, je te déconseille, seulement si tu as vraiment besoin d'initialiser une case à autre chose que 0)
typedevariable tontableau[][]=new typedevariable[nb1erindice][nb2emeindice];
int i;
int j;
for(i=0;i<tonindice2;i++){

    for(j=0;j<tonindice1;j++){
        if(j==lavaleurspécialedej && i==lavaleurspécialedei){
          tableau[j][i]=la valeur autre que 0
        }
        else { 
          tableau[j][i]=0
        }       

    }
}
0
zzzer Messages postés 938 Statut Membre 181
 
Ça oui, d'accord, mais ça ne répond pas à ma question ^^
Ma question est où dois-je placer ce code afin qu'il soit exécuté au chargement de la classe ?

-1
artragis Messages postés 510 Statut Membre 146
 
bah dès que tu as déclaré le constructeur, c'est bon ce me semble
0
zzzer Messages postés 938 Statut Membre 181
 
Non, pas dans le constructeur, sinon il va réinitialiser le tableau à chaque nouvel élément que je créerai !

-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pamputt
 
Quelque chose comme ça
static bool dejaUtilisees[13][4] = { {false} };
0