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 :

Stockage dynamique d'éléments: Choix d'un conteneur


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    BNS
    BNS est déconnecté
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut Stockage dynamique d'éléments: Choix d'un conteneur
    Bonjour à tous,

    dans le cadre d'un programme de People Tracking, je dois pouvoir stocker un élément "people" (ID de la personne, position dans la salle, etc...) quelque part dans ma mémoire, et pouvoir y accéder. Or, ce tableau ne doit pas avoir une taille fixe, car le nombre de personne est amené à varier en permanence.
    Quelle serait donc la structure de stockage idéale dans mon cas?
    J'ai déjà fais quelques recherces, dans la FAQ par exemple. Ils proposent un graph pour choisir son conteneur ici: http://c.developpez.com/faq/cpp/?pag...hoix_conteneur. Or, cela m'amène à choisir une structure map, mais ca ne m'aide pas beaucoup, je suis toujours dans la flou, car je n'ai jamais travaillé avec, ni meme entendu parler de cette structure.
    Il y a aussi ce topic, qui parle de l'utilisation de listes chainées, mais la discussion porte plus sur le langage C.
    http://www.developpez.net/forums/arc...p/t-90414.html

    Que me conseilleriez vous? Tableau classique (est-il possible de le redimmensionner proprement?)? Liste chainée? Autre?
    Merci d'avance pour votre aide

  2. #2
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Pour le tableau classique avec cependant redimensionnement "automatique" (dans le sens ou ce n'est pas toi qui gère ça), il y a std::vector.
    Une std::map est tout simplement un tableau associatif.
    Pour la liste chainée, tu as std::list.
    A toi de voir, selon tes besoins.

  3. #3
    BNS
    BNS est déconnecté
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut
    Je crois que la structure vector est bien adaptée. Si je comprend bien, si je la définie comme un tableau de 10 éléments, puis que je veux en ajouter un 11ème, la methode push_back alloue la memoire toute seule, c'est bien ca?

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    En effet.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  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
    Par défaut
    Je crois que la structure vector est bien adaptée.
    Ce qui signifie que tu ne sais pas répondre aux questions simples du graphe sur ce que tu veux.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    C'est clair que si t'as besoin d'acceder a une personne par son ID, c'est pas un vector qu'il te faut, c'est clair comme de l'eau de roche.....

    non c'est bien une map. trouve un tutorial pour apprendre a l'utiliser.

    c'est du genre:

    std::map<int, Person*> persons;
    persons[2] = new Person(2, "myname", ... )
    Person *clickedPerson = persons[2];

    ...

    en plus un Vector aura des pertes de performance si ca s'agrandit de trop, j'avais eu un probleme comme ca avant.

    A+

  7. #7
    BNS
    BNS est déconnecté
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut
    Citation Envoyé par loufoque
    Ce qui signifie que tu ne sais pas répondre aux questions simples du graphe sur ce que tu veux.
    Au contraire, je sais repondre aux questions simples du graphe, preuve en est:
    cela m'amène à choisir une structure map
    Mais vu que je n'ai pas besoin de chercher une personne par ID dans mon conteneur, et que le nombre de personne ne devrait pas éxcéder 7 ou 8 je pense, le vector est peut-etre plus adapté voila tout.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/10/2007, 00h12
  2. Ajout/Suppression dynamique d'éléments
    Par Norin dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2007, 19h15
  3. Choix d'un conteneur
    Par olive_le_malin dans le forum C++
    Réponses: 9
    Dernier message: 05/12/2006, 10h13
  4. Parcours dynamique des éléments d'un form
    Par leminipouce dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 02/10/2006, 19h09
  5. Choix du bon conteneur
    Par new.proger dans le forum C++
    Réponses: 5
    Dernier message: 09/08/2006, 00h03

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