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 :

Cr�er un vecteur de diff�rent type


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 15
    Par d�faut Cr�er un vecteur de diff�rent type
    Bonjour � tous,

    Je cherche � cr�er un vector dont les cases seraient de diff�rents types. Je m'explique:

    J'essaie de cr�er un vecteur de ce type la:
    ( (double, string, vecteur double, vecteur string), (double, string, vecteur double, vecteur string) , .....)
    J'ai essay� avec boost::variant, avec des map.
    Auriez-vous une id�e ?

  2. #2
    Membre exp�riment� Avatar de Rewpparo
    Homme Profil pro
    Amateur
    Inscrit en
    D�cembre 2005
    Messages
    170
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Amateur

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 170
    Par d�faut
    Les classes/struct sont faites pour ca si tu en connais le contenu � la compilation.
    Si c'est pour mettre plein de random trucs dedans, c'est impossible, et d'ailleurs pas souhaitable. Sinon quand tu it�re ton vecteur, comment connais tu le type *iter ?
    Il y a plusieurs solutions qui sont beaucoup plus propres, g�n�ralement une classe de base avec une interface virtuelle (polymorphisme).

  3. #3
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    Si tu as, d'office, un double, un vecteur de string et un vecteur de double, qui restent fortement d�pendants les uns des autres, pourquoi ne pas cr�er, tout simplement, une structure qui contienne tout cela:
    struct MyStruct
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    {
         double truc;
         std::vector<double> machin;
         std::vector<std::string> bidule;
    };
    et utiliser, tout simplement, un vecteur de cette structure
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    std::vector<MyStruct> tab;
    MyStruct s;
    /* initialisation de s */
    tab.push_back(s);


    Maintenant, il n'est pas exclu que cette mani�re de voir les choses soit en r�alit� beaucoup trop orient�e "donn�es" pour ce que tu cherches � faire, dans le sens o�, dans l'id�al, en POO, on essaye de s'int�resser plus au comportement d'une classe et que ce sont les comportements attendus / esp�r�s qui vont d�finir la mani�re de repr�senter les donn�es permettant d'obtenir ces comportements
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 15
    Par d�faut
    Merci pour vos r�ponses.
    Cependant, existe-t-il d'autres solutions ?
    J'ai l'impression que mon compilateur ne reconnait pas les vecteurs de structure

  5. #5
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    C'est la meilleure solution, le compilateur n'a aucune raison de ne pas accepter un vector de struct.
    La struct est bien d�clar� au moment o� tu veux cr�er le vector avec ?
    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.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    F�vrier 2012
    Messages
    15
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2012
    Messages : 15
    Par d�faut
    Oui tout � fait, la structure est d�clar�e tout au d�but.
    Cependant, j'utilise Cint qui est un interpr�teur particulier.
    http://root.cern.ch/drupal/content/cint

Discussions similaires

  1. R�ponses: 10
    Dernier message: 08/04/2007, 20h17
  2. R�ponses: 5
    Dernier message: 11/09/2006, 17h29
  3. Affichage de listes de diff�rents types
    Par thibouille dans le forum C++
    R�ponses: 9
    Dernier message: 27/11/2005, 19h34
  4. diff�rents types de bases de donn�es
    Par Alvergnat dans le forum Access
    R�ponses: 2
    Dernier message: 18/06/2005, 17h06
  5. R�ponses: 9
    Dernier message: 02/03/2005, 22h46

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