[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 !

--
N'oubliez pas de marquer la discussion comme résolue dès que c'est le cas ! -> En haut de la page, Statut: Résolu
Attention aussi à bien respecter la 6e règle de la charte : 
Rédiger les messages dans un langage clair sans abréviation, style télégraphique ou mode SMS
Configuration: Windows XP
Firefox 3.0.1

5 réponses

  1. 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
  2. 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
  3. 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
    1. 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
  4. 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
    1. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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