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

Qt Discussion :

QVector de QVector ?


Sujet :

Qt

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut QVector de QVector ?
    Bonjour à tous.....

    alors voici ma question : est-il possible avec Qt de faire des tableaux de tableaux??? Moi je dois faire un tableau de tableau de tableau, et je pense donc utiliser un Qvector de la sorte :

    QVector<QVector<QVector<QAction *>>> Menus;

    Mais je me pose quelques questions .... Se je fais par exemple Menus[0][1].append....... est-correct et si oui, est-ce que cela va ajouter mon élément dans mon tout dernier tableau(de Qaction *)

    J'espère que vous avez compris ce que j'ai dis sinon n'hésitez pas a demander des éclaircissements .....

    Merci d'avance

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut
    Peut tu expliquer pourquoi tu as de besoin d'un vector de vector de vector???

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut
    salut ,

    en fait je travaille sur un projet, et je dois fournir un tableau qui contiendra en fait des menus ainsi que leurs éléments.

    En gros, le premier tableaux aura une taille de 4(on veut 4 menus), et il sera composé de pointeurs sur le second tableau.
    Le second tableau contiendra lui aussi des pointeurs vers le 3e tableau.
    Et le troisième tableau contiendra des QActions qui seront ajoutées aux menus.

    voila j'espère avoir été clair ....

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut
    Je rencontre un problème lors de la création de mon code :

    je n'arrive pas a ajouter un Qvector a un autre.... Par exemple, lorsque je veut, pour mon Vector Global, lui ajouter un QVector, le append ne marche pas, ou alors c'est que je m'y prends mal :

    Menus.append(new *QVector<QVector> );

    Est seulement possible de faire cela ??? Si oui, qu'est ce qui ne colle pas ???

    merci d'avance

  5. #5
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Citation Envoyé par clem_69 Voir le message
    Menus.append(new *QVector<QVector> );
    Je te propose un petit jeu... Dis nous toi même ce que tu penses faire avec cette expression?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut
    lol IrmatDen, je viens de justement voir que elle était pas bonne cette expression... PAr contre ce que je veux faire avec c'est ajouter un pointeur vers un Qvector qui lui même contiendra aussi des pointeurs vers des QVector

  7. #7
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Citation Envoyé par clem_69 Voir le message
    lol IrmatDen, je viens de justement voir que elle était pas bonne cette expression... PAr contre ce que je veux faire avec c'est ajouter un pointeur vers un Qvector qui lui même contiendra aussi des pointeurs vers des QVector
    Pourquoi utiliser des pointeurs et pas des QVector tout court? Voire mieux pour ce que tu veux faire, des QList ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut
    Salut IrmatDen,

    c'est vrai que sa serait plus simple de faire sans pointeurs. Par contre au niveau de la QList, j'avoue que la différence avec un QVector n'est pas flagrante pour moi ..... Qu'est ce qui les différencie?

  9. #9
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Non contiguité en mémoire, donc pas de réallocations nécessaires lors de l'ajout d'éléments. A part ça, c'est la même chose, donc QList est préférable la plupart du temps.

  10. #10
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    A part ça, c'est la même chose, donc QList est préférable la plupart du temps.
    Oui et non.
    Tu peut te baser sur ce schemat
    http://cpp.developpez.com/faq/cpp/?p...hoix_conteneur

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut
    d'accord merci.
    Je vais donc utiliser des QList sans pointeurs, c'est le plus simple.
    Mais j'ai toujours un problème de syntaxe lorsque je veux ajouter dans ma liste une autre Qlist : je crée une liste vide et je fais un append .... mais non ce n'est pas sa...

    QList menu = new QList() ;
    Menus.append(menu);

    D'apres la doc des QList je ne vois que comme sa pour faire ce que je veux

  12. #12
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par clem_69 Voir le message
    d'accord merci.
    Je vais donc utiliser des QList sans pointeurs, c'est le plus simple.
    Mais j'ai toujours un problème de syntaxe lorsque je veux ajouter dans ma liste une autre Qlist : je crée une liste vide et je fais un append .... mais non ce n'est pas sa...

    QList menu = new QList() ;
    Menus.append(menu);

    D'apres la doc des QList je ne vois que comme sa pour faire ce que je veux
    Qule est le type de Menus?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut
    Qule est le type de Menus?
    QList<QList<QList<QAction *>>> Menus;

  14. #14
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par clem_69 Voir le message
    QList<QList<QList<QAction *>>> Menus;
    alors il faut que tu fasse une QList< QList<QAction*> > et que tu l'ajoute avec append.

    Es ce que les ajouts/suppressions sont fait trés souvent ou juste une fois au début?

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut
    non j'en fait au début 4 maximum et après selon le nombre de sous-menus, mais sa ne dépasse pas 5 ou 6 je pense... pourquoi ?

    Pour l'ajout c'est ce que j'ai fait, mais j'ais toujours les mêmes erreurs à la compilation avec sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    QList menu = new QList<QList<QAction*>>();
    		Menus.append(menu);
     
    Erreurs :
     QList' : l'utilisation d'une classe modèle requiert une liste d'arguments modèle
    QList<T>::append' : impossible de convertir le paramètre 1 de 'QList' en 'const QList<T> &'

  16. #16
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    ajoute en espace entre les >>
    SInon, Je pense que QVector est bien plus adapter alors

  17. #17
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    j'ai repondu un peu vite...
    comment vu tu que ca marche???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QList menu = new QList<QList<QAction*>>();
    menu est indefinie et tu veut lui affecter un pointeur!!!!

    Comprend tu le problème???

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut
    euh non je ne comprend pas vraiment .... mais tu vas surement éclairer ma lanterne ^^

  19. #19
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par clem_69 Voir le message
    euh non je ne comprend pas vraiment .... mais tu vas surement éclairer ma lanterne ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QList menu = new QList<QList<QAction*>>();
    tu veut mettre un pointeur sur une QList<QList<QAction*>> sur quelque chose d'indéfinie!!!

    A mon avis ce que tu voulais faire c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QList<QList<QAction*>> menu;
    Menus.append(menu);
    c'est un problème de typage

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 47
    Par défaut
    ah oui d'accord, je vois. Donc si je veux ajouter une élément a ma 2e liste, j'ai juste a faire :

    QList<QAction*> menu;
    Menus.append(menu);

    Merci bien MonGaulois pour ta rapidité de réponse sa me bloquait dans mon projet
    Bye bye

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. paramètre pour un signal QVector<QString> pbm
    Par guillaume07 dans le forum Qt
    Réponses: 1
    Dernier message: 30/12/2009, 11h45
  2. Réponses: 9
    Dernier message: 18/08/2009, 14h20
  3. prob avec QVector
    Par doudou87 dans le forum Qt
    Réponses: 3
    Dernier message: 25/05/2009, 23h58
  4. Réponses: 4
    Dernier message: 24/05/2009, 18h35
  5. Menu et QVector
    Par clem_69 dans le forum Qt
    Réponses: 30
    Dernier message: 28/02/2008, 11h53

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