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

Langage C++ Discussion :

Un tableau à 2D dont on peut changer la taille, avec des colonnes de type différents


Sujet :

Langage C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Un tableau à 2D dont on peut changer la taille, avec des colonnes de type différents
    Bonjour à tous.
    Je pense que le titre est assez clair, je voudrai stocker un tableau à 2 dimensions, tel que
    • on peut ajouter une ligne ou une colonne
    • chaque colonne est d'un type différent


    un peut comme ca (avec des donnés totalement aléatoire)

    Nom : 364613.png
Affichages : 86
Taille : 7,0 Ko

    Je n'ai mis que des types de bases, mais ca pourrai bien être une class.

    Je ne sais pas quoi utiliser comme conteneur (avec et boost et la stl).
    Merci d'avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 125
    Points : 33 029
    Points
    33 029
    Billets dans le blog
    4
    Par défaut
    Quelque chose comme std::vector<boost::any>, mais je suis sceptique quant à la nécessité d'un tel container "complexe"
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Tout dépend ce que tu veux faire. Si tu recherches une solution optimale en C++, une structure générique sera moins performante qu'une structure adaptée à tes données.
    Sinon, tu dois t'orienter vers boost::any ou avec une lib plus haut niveau, tu peux regarder dans Qt (avec QStandardIdemModel ou QAbstractTableModel)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Je ne cherche pas forcement une structure optimal, mais celle qui sera le plus adapté. Je ne veux pas utiliser Qt car je ne l'utilise pas dans mon programme. J'ai regarder du côté de boost::any mais je ne vois pas trop comment faire avec?

  5. #5
    Membre éclairé
    Avatar de Ekleog
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Points : 879
    Points
    879
    Par défaut
    Un std::vector<boost::fusion::vector<...>> peut être la solution, si les types des colonnes sont fixés d'avance.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Il n'y a pas un moyen pour qu'on puisse mettre tout les types possible? (si il n'y a pas j'utiliserai boost::fusion, mais c'est quoi boost::fusion?)

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 125
    Points : 33 029
    Points
    33 029
    Billets dans le blog
    4
    Par défaut
    Je relance le "je ne vois pas l'intérêt" d'un tel container.

    Peut-être que si tu nous parlais de ton idée saugrenue on pourrait t'indiquer un vrai moyen fiable et correct de la réaliser.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    C'est pour un jeu 2D en Tile Mapping.
    Pour stocker les propriétés des tiles.

    Par exemple (avec la SFML) :

    Image (sf::Sprite)
    Collision (bool)
    Changement de vitesse (float)
    Animation, Poids...

    Donc les propriétés seraient les colonnes, et chaque ligne serai une tile.

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 125
    Points : 33 029
    Points
    33 029
    Billets dans le blog
    4
    Par défaut
    Et bien tu crées une structure et tu utilises un tableau de ces structures.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    struct Tile {};
    std::vector<Tile*> vecTiles;
    Et en prime, tu peux utiliser l'héritage et le polymorphisme pour spécialiser tes tiles, en dérivant une structure qui représenterait un tile qui bouge (un drapeau qui ondule), une structure pour les tiles statiques, ...
    Avec la bonne interface à hériter, les possibilités sont très intéressantes.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #10
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Ca confirme l'intuition de Bousk : c'est une mauvaise idée
    Utilise un simple liste de structure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct Tile {
       sf::Sprite image;
       bool Collision;
       etc.
    };
    std::list<Tile*> tile_list;
    EDIT : trop tard, petit scarabée

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2008, 07h35
  2. Réponses: 4
    Dernier message: 05/12/2006, 11h43
  3. [CSS] Remplacer un tableau avec des colonnes
    Par mullger dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 22/08/2006, 15h30
  4. Peut on utiliser OR avec des jointures de tables??
    Par gins06 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/10/2005, 12h40
  5. Changer plusieur style avec des IDs différents?
    Par YanK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2005, 14h33

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