IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Tableau semi dynamique a 3 dimensions de types differents


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Par défaut Tableau semi dynamique a 3 dimensions de types differents
    Bonjour a tous,

    Voila je me remet tranquillement dans le c++ et la je bute sur une declaration de tableau :

    Est il possible de declarer un tableau a 3 dimensions sachant que la premiere dimension est de type string, que la 2 et la 3 sont de type int et que les dimensions 1 & 2 sont dynamiques ?
    En clair je souhaite creer un tableau t[string][int][int] de taille t[n][k][128] par exemple. Dois je passer par un vector ? tableau ? ... ?

    Merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Par défaut
    Citation Envoyé par ZeRiL
    Bonjour a tous,

    Voila je me remet tranquillement dans le c++ et la je bute sur une declaration de tableau :

    Est il possible de declarer un tableau a 3 dimensions sachant que la premiere dimension est de type string, que la 2 et la 3 sont de type int et que les dimensions 1 & 2 sont dynamiques ?
    En clair je souhaite creer un tableau t[string][int][int] de taille t[n][k][128] par exemple. Dois je passer par un vector ? tableau ? ... ?

    Merci d'avance.

    Moi je conseillerai le vector, mais si tu gère bien les tableaux à 3 dimensions, vas-y, c'est aussi bien, mais tu n'as pas intérêt de faire une erreur, et ca vient rapidement.

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Par défaut
    Je n'ai pas de preference... vector, tableau ou autre peu importe... Mais puisque apparement il est possible de declarer un tel tableau/vector, c'est la declaration en elle meme du tableau/vector qui m'embete dans l'ímmediat apres l'utilisation j'vais me debrouiller

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par défaut
    Pour la première dimension, comme l'index est de type string, il faut passer par quelque chose comme std::map. Example :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef std::vector<int> Tab1D;
    typedef std::vector<Tab1D> Tab2D;
    typedef std::map<std::string, Tab2D> Tab3D;
     
    Tab3D t;
    // ...
    t["toto"][4][2] = 10;

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Par défaut
    Merci de ta reponse, a premiere vue cela me semble effectivement correspondre a mon besoin. Je teste

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Par défaut
    Citation Envoyé par Sylvain Togni
    Pour la première dimension, comme l'index est de type string, il faut passer par quelque chose comme std::map. Example :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef std::vector<int> Tab1D;
    typedef std::vector<Tab1D> Tab2D;
    typedef std::map<std::string, Tab2D> Tab3D;
     
    Tab3D t;
    // ...
    t["toto"][4][2] = 10;
    Intéressante ta solution.

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Par défaut
    Ha yes, j'avais presque abandonné les vector 3 dimensions hier car j'avais toujours des erreurs lors de la compilation. Je vais retester avec cette syntaxe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tableau semi dynamique n lignes, 2 colonnes
    Par paf26 dans le forum C++
    Réponses: 8
    Dernier message: 05/08/2014, 20h22
  2. Réponses: 0
    Dernier message: 18/03/2010, 15h27
  3. [XL-2003] Liste déroulante type tableau croisé dynamique
    Par zaza78 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/06/2009, 11h35
  4. tableau dynamique de deux dimensions
    Par lecamer dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 31/07/2008, 15h36
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo