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

Discussion :

Que dois-je utiliser : QList, QMap, QHash ?

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 284
    Par défaut Que dois-je utiliser : QList, QMap, QHash ?
    Bonjour,

    Encore 1 fois, j'ai besoin de l'assistance de mes pairs

    Mon besoin :

    Créer plusieurs liste d'ints, jusque là pas de difficultés particulières, je complique un peu : Chaque liste d'ints aura en plus une QString unique par liste d'int

    Les listes pourront être modifiés (ajout, suppression int, changement contenu QString), le nombre de liste pourra aussi varier.

    Autre besoin : chercher si un entier est contenu dans une ou plusieurs des listes. Du coup, je pense que mes listes doivent être contenues dans une liste de liste.

    Qu'en pensez-vous ? - je pense devoir faire appel à une conbinaison de QList, QHash etc...

    exemple listes :

    liste 1:
    25
    43
    "bonjour"

    liste 2:
    14
    7643
    87
    "au revoir"
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  2. #2
    Membre éclairé
    Avatar de VivienD
    Homme Profil pro
    Développeur logiciel
    Inscrit en
    Octobre 2009
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur logiciel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 523
    Par défaut
    Bonsoir,

    Dans ton cas, j'utiliserais une structure avec une liste (QList) de nombres entiers et une chaîne de caractères (QString). En gros, ça devrait ressembler à ce qui suit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    typedef struct{
        QList<int> list;
        QString str;
    } MyStruct;
    Après, il y a sans doute des méthodes plus complètes, plus propres ou plus tarabiscotées.

    Tschüß!

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 284
    Par défaut demande compléments
    Bonjour,

    Merci pour la réponse.

    Il me manque un complément.

    Pour mon besoin, il me faudrai donc qq chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    typedef struct{
        QList<int> list;
        QString str;
    } MyStruct;
     
    typedef struct{
       QList<Mystruct> structure;
    } monconteneur
    De façon à ce que j'ai une qlist de la 1ère structure.

    Mon besoin : pouvoir rechercher un entier dans toutes les Mystructs de ma QList conteneur et savoir si cet entier est présent dans une ou plusieurs des structures.

    Je peux utiliser structure.list.contains pour rechercher dans 1 des structures, pour la liste des structures comment faire ?

    Merci pour votre aide.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Membre éclairé
    Avatar de VivienD
    Homme Profil pro
    Développeur logiciel
    Inscrit en
    Octobre 2009
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur logiciel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 523
    Par défaut
    Dans l'absolu, ton conteneur n'a pas besoin d'une structure: en effet, il ne contient qu'un seul élément. Tu te retrouves donc avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct{
        QList<int> list;
        QString str;
    } MyStruct;
     
    typedef QList<MyStruct> monconteneur;
    Ensuite pour rechercher une valeur entière dans chacune des structures, tu as besoin d'une boucle for ou while; ensuite, tu n'auras besoin que des méthodes T QList<T>::at(int), bool QList<T>::contains(const T&) et int QList<T>::size().

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 284
    Par défaut est-il possible d'éviter for ou while
    Merci pour ta réponse Vivien.

    Cependant, n'y a t'il pas moyen d'éviter une boucle for ou while ?

    N'y a t'il pasun moyen plus efficace pour répondre à mon besoin, d'ou ma question d'utilisation de QHash, QMap, etc .. ou d'une combinaison.

    J'aimerais faire un truc du genre monconteneur.mystruct.list.contains
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Membre éclairé
    Avatar de VivienD
    Homme Profil pro
    Développeur logiciel
    Inscrit en
    Octobre 2009
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur logiciel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 523
    Par défaut
    Vu que ton conteneur est susceptible de contenir plusieurs listes, je ne pense pas qu'il y ait moyen de se passer d'une boucle.

    En revanche, pour savoir si un des éléments de ton conteneur en particulier contient une valeur entière, tu dois utiliser la commande bool monconteneur::at(int i).list.contains(int v)int i est le numéro de l'élément concerné et int v la valeur entière recherchée.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // on crée un conteneur vide
    monconteneur conteneur;
     
    // on ajoute au conteneur au moins quatre objets de la classe MyStruct via la méthode monconteneur::append(MyStruct struct)
    // je ne le fais pas parce que ce n'est pas le but de l'exemple
    // (et ça risque d'être chronophage)
     
    // maintenant on veut savoir si l'élément numéro 3 du conteneur contient la valeur 1234
    if(conteneur.at(3).list.contains(1234))
    {
        // truc(s) à faire si l'élément numéro 3 du conteneur contient bien la valeur 1234
    }
    else
    {
        // truc(s) à faire sinon
    }

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

Discussions similaires

  1. Aide SVP que dois je utiliser
    Par Nadou90 dans le forum Cas d'utilisation
    Réponses: 7
    Dernier message: 04/02/2013, 17h55
  2. MBeans, que dois je utiliser?
    Par thinkagain dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 0
    Dernier message: 18/04/2012, 13h43
  3. Réponses: 2
    Dernier message: 07/05/2010, 11h52
  4. Réponses: 6
    Dernier message: 19/06/2009, 07h55
  5. Réponses: 3
    Dernier message: 19/07/2002, 15h01

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