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

SL & STL C++ Discussion :

question sur les listes/set/vector


Sujet :

SL & STL C++

  1. #1
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut question sur les listes/set/vector
    je sais qu'on peut utiliser des containers pour contenir certaines données (int, char, string....)
    Mais peut-on utiliser des containers qui eux-mêmes contiennent des containers??

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Bien sûr.
    Boost ftw

  3. #3
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    tu le dit toi meme des conteneur contiennent des données tu va pouvoir mettre n'importe quelle objet dans un conteneur!
    si tu fait une classe voiture par exemple tu peux faire un conteneur de voiture pour faire une classe garage et tu peut faire un conteneur de garage pour faire une classe concessionnaire ....
    j'espere avoir été assez clair
    bon courage jeremy
    Rien ne se perd, rien ne se crée, tout se transforme

    ------- -------

  4. #4
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Mais peut-on utiliser des containers qui eux-mêmes contiennent des containers??
    Je ne contredirai pas ce qui a été dis précédement puisqu'il est possible de mettre des conteneurs dans d'autres conteneurs (un conteneur est générique, il peut donc contenir n'importe quoi) , il faut toutefois faire attention à l'écriture. Par exemple, un vecteur qui contient un autre vecteur doit s'écrire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vector<vector<int> > mon_vecteur;
    En n'oubliant surtout pas de mettre un espace entre le premier > et le second. Sans ceci tu auras une erreur (le compilateur reconnait l'opérateur >> à la place ...)

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    attention avec certains conteneurs cependant qui nécessitent certaines choses.
    Par exemple, std::set nécessite que les éléments soit ordonnables, ce qui n'est
    par exemple pas le cas des conteneurs non ordonnés comme hash_map.
    Boost ftw

  6. #6
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    ok, merci pour toutes ces réponses.
    maintenant, j'ai besoin de containers qui contiennent des listes de chiffres. Ces listes de données seraient accessibles par des numéros (1,2, 1000)
    Ainsi, pour la 100 ieme liste, on aurait comme éléments: 0.2,0.33,0.01...
    Pour la 30ieme; on aurait :0.332,0.499....

    Quel type de containers me conseillez vous de prendre pour contenir ces listes?

  7. #7
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    J'ai peur de ne pas comprendre ce que tu veux faire (j'ai du mal à voir la suite logique sur tes listes ...). Mais sinon, ça dépend de ce que tu veux faire apprès dessus tes listes. (bêtement je pensais à un vecteur de liste ou un vecteur de vecteur ...)

  8. #8
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    Soit n listes de chiffres:

    L[1]=[0.1,0.3,......,0.2]
    L[2]=[0.52,0.10,....0.99]
    .....
    L[n]=[0.9,0.32,....,0.21]

    Je veux un containers qui contiennent les listes.
    Mais je pense qu'un Vector est suffisant.

  9. #9
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Est ce que tes listes sont contigues (c'est à dire qu'après la liste 1 tu as la liste 2 puis la 3 et ainsi de suite) parce que dans ton premier post, ça n'était pas clair.

    Aussi, quelles seront les opérations sur tes listes ?

  10. #10
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    >>Est ce que tes listes sont contigues.
    Mes listes de chiffres seront accessibles par des numéros croissants, mais pas forcément succeffis. Par exemple, l'index de la premiere liste sera 2324, l'index de la deuxième liste: 2367......



    >>Aussi, quelles seront les opérations sur tes listes ?

    Dans mes listes, il se peut que j'ajoute des éléments. Mais je veux que ces elements soient uniques. Alors pour mes sous-listes, je vais prendre des SETS.

    Mais la question que je me pose c'est que prendre pour ma liste de SETS?

  11. #11
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    std::map<int, std::set<double> > par exemple.
    Boost ftw

  12. #12
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    ok, merci,
    la question suivante n'a rien avoir avec les containers, mais je vais pas lancer un nouveau fil sur le forum. C'est sur l'arithmétique des pointeurs.

    Soit le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    char p[]="EBA";
    char *q = strchr(p,'B');
    char *s = strchr(p,'A');
    cout<<&p;
    cout<<&q;
    cout<<sizeof(p)
    cout<<(q-p);
    cout<<&s;
    Réponse:
    0x22ff74
    0x22ff70
    4
    1
    0x22ff6c


    la valeur de &p est égale à 0x22ff74=2293620
    la valeur de &q est égale à 0x22ff70=2293616
    la valeur de &s est égale à 0x22ff6c=2293612
    la taille des pointeurs p est de 4 octets.


    lorsque l’on soustraie des pointeurs : q-p, cela revient a faire :
    ( adresse de q – adresse de p)/(taille de q).
    Donc q-p=(2293616-2293620)/4= -1

    Or, gcc renvoie q-p=1.
    Ou est mon erreur ?

  13. #13
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Ce n'est pas &q qu'il faut afficher mais static_cast<void*>(q).
    Pareil pour s.

    Pour p ça devrait rien changer.
    Boost ftw

  14. #14
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    effectivement, j'ai vu le résultat.
    mais quelle est la différence entre static_cast<void*>(q) et &q ??

  15. #15
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    static_cast<void*>(q) c'est simplement q (qui est un char*) converti en void* pour que ce soit affiché comme une adresse et non comme une chaîne de caractère.
    &q c'est l'adresse de q, c'est à dire l'adresse du pointeur, variable sur la pile.
    Boost ftw

  16. #16
    Débutant  
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Points : 217
    Points
    217
    Par défaut
    ok merci
    resolu

  17. #17
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par deubelte
    resolu
    Y a un bouton pour ça.

    NB: le pré-requis sur les éléments des conteneurs standard est un pré-requis de copiabilité. Plus parfois un pré-requis d'ordre.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. Question sur les listes indexées
    Par devplus dans le forum Hibernate
    Réponses: 0
    Dernier message: 25/10/2008, 16h55
  2. questions sur les listes
    Par blaise4714 dans le forum Général Python
    Réponses: 5
    Dernier message: 06/06/2008, 03h40
  3. Question sur les listes d'affichage
    Par brouss dans le forum OpenGL
    Réponses: 3
    Dernier message: 08/03/2007, 12h56
  4. question sur les listes/set/vector
    Par deubelte dans le forum SL & STL
    Réponses: 11
    Dernier message: 04/01/2007, 20h41
  5. des questions sur les listes chainées
    Par hunter99 dans le forum C
    Réponses: 13
    Dernier message: 05/12/2006, 22h51

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