Rechercher : dans
Par :

[C++] Initialiser un tableau bidimensionnel

Dernière réponse le 13 sep 2008 à 17:38:57 zzzer, le 13 sep 2008 à 16:19:50 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [C++] Initialiser un tableau bidimensionnel » dans :
Inverser les éléments d'un tableau -Récursivité- VoirVoici une procédure récursive qui permet d’inverser les éléments d’une partie d’un tableau compris entre la position p et n : Procedure Inverser (Var t : Tab; p, n : Integer); Var aux : Real; Begin If p < n Then ...
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Les tableaux en langage C++ VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

artragis, le 13 sep 2008 à 16:57:56

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...)

Répondre à artragis

2

zzzer, le 13 sep 2008 à 17:04:10

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 ?

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

Répondre à zzzer

3

artragis, le 13 sep 2008 à 17:22:57

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
        }       

    }
}

Répondre à artragis

4

zzzer, le 13 sep 2008 à 17:25:44

Ç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 ?

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

Répondre à zzzer

5

artragis, le 13 sep 2008 à 17:34:27

Bah dès que tu as déclaré le constructeur, c'est bon ce me semble

Répondre à artragis

6

 zzzer, le 13 sep 2008 à 17:38:57

Non, pas dans le constructeur, sinon il va réinitialiser le tableau à chaque nouvel élément que je créerai !

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

Répondre à zzzer
Collection CommentÇaMarche.net