[C++] Initialiser un tableau bidimensionnel

zzzer Messages postés 906 Date d'inscription   Statut Membre Dernière intervention   -  
 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 481 Date d'inscription   Statut Membre Dernière intervention   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 906 Date d'inscription   Statut Membre Dernière intervention   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 481 Date d'inscription   Statut Membre Dernière intervention   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 906 Date d'inscription   Statut Membre Dernière intervention   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 481 Date d'inscription   Statut Membre Dernière intervention   146
 
bah dès que tu as déclaré le constructeur, c'est bon ce me semble
0
zzzer Messages postés 906 Date d'inscription   Statut Membre Dernière intervention   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