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. #21
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    t'as tour compris.
    par contre contrairement à irmaden, je pense que QVector est plus adapter.
    Ainsi, ajouter une element peut se faire par une resize. Tu peut reserver la memoire par un reserve ect, etc

  2. #22
    Membre à l'essai
    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
    Points : 15
    Points
    15
    Par défaut
    juste une derniere question :
    Menus[i][j].append(new QAction((nom),this));

    est-ce une syntaxe correcte pour ajouter mes Actions ?
    Mon projet compile mais à l'exécution une erreur de debut index out of range, ce qui veut dire que je cherche un truc qui n'existe pas . Cependant, la fenetre de débug me précise que l'erreur correspond à une "ASSERT FAILURE" dans le fichier
    tools/qlist.h à la ligne 392. J'ai regardé le fichier .h mais bon c'est pas évident, tu aurais une idée du soucis ?? Car mon algo est juste lol j'en suis sur !!

  3. #23
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par clem_69 Voir le message
    juste une derniere question :
    Menus[i][j].append(new QAction((nom),this));

    est-ce une syntaxe correcte pour ajouter mes Actions ?
    Mon projet compile mais à l'exécution une erreur de debut index out of range, ce qui veut dire que je cherche un truc qui n'existe pas .
    t'as compris le problème
    la faudrait ton code pour t'aider.En gros y as i ou j qui est faux

  4. #24
    Membre à l'essai
    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
    Points : 15
    Points
    15
    Par défaut
    bon je te donne mon code, j'ai essayé de le commenter au fur et a mesure, mais j'ai pas du tout préciser donc si tu as un soucis de compréhension hésite pas. La partie problématique se trouve dans la fonction parcours.
    Fichiers attachés Fichiers attachés

  5. #25
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    tu voulais faire quoi ici????

  6. #26
    Membre à l'essai
    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
    Points : 15
    Points
    15
    Par défaut
    bah initialiser mes variables pour faire des append au bons endroits (Menus[i][j][k].append........) => pour mon premier menu il faut que i j et k soient a 0 sinon j'ajoute des éléments n'importe ou

  7. #27
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par clem_69 Voir le message
    bah initialiser mes variables pour faire des append au bons endroits (Menus[i][j][k].append........) => pour mon premier menu il faut que i j et k soient a 0 sinon j'ajoute des éléments n'importe ou
    héhé
    essaie
    le , est un peu comme un ;

  8. #28
    Membre à l'essai
    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
    Points : 15
    Points
    15
    Par défaut
    oula merci beaucoup j'aurais jamais trouvé sa tout seul ^^ !!
    Encore merci !

  9. #29
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    un dernier point. pour rendre ton code plus lisible, regarde thread
    http://www.developpez.net/forums/sho...d.php?t=480142
    pourquoi i,j et k ne sont initialisé dans le createur?

  10. #30
    Membre à l'essai
    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
    Points : 15
    Points
    15
    Par défaut
    parce que j'ai pas pense ^^ mais c'est mieux. Oui pour la lisibilité faudra que je renomme toutes ce variables.
    Bref en tout cas merci beaucoup !!

  11. #31
    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
    Points : 3 266
    Points
    3 266
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Oui et non.
    Tu peut te baser sur ce schemat
    http://cpp.developpez.com/faq/cpp/?p...hoix_conteneur
    Gaffe, une QList n'est pas une liste chaînée qu'elle soit simple ou double. Or, std::list est une liste doublement chaînée.
    Donc, je maintiens ma position. Les différences que j'ai données sont les seules entre QVector et QList (!= QLinkedList à laquelle je suppose que tu penses réellement).

  12. #32
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    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.
    Donc c'est bien une liste!!! c'est l'equivalent de la std::list.
    Ou alors y as une différence que je ne comprend pas...

    Elle n'as t'interet que si l'on fait beaucoup d'ajout/enlevement.
    Ici c'est quasi fixe.

  13. #33
    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
    Points : 3 266
    Points
    3 266
    Par défaut
    C'est en effet un trait commun aux 2 (la non contiguité). Mais la ressemblance s'arrête là.

    De façon vraiment simplifiée (pour vraiment savoir ce qu'il en est, je vous renvoie vers des références sur l'algorithmie):
    • Dans une liste doublement chaînée (std::list et QLinkedList), ce sont les noeuds qui savent à quel éléments ils sont liés. Le conteneur en lui même n'a aucune idée de l'ensemble; c'est pour ça que des fonctions telle size() tourne en O(n) => le conteneur doit parcourir l'ensemble de la liste
    • pour faire très simple, QList<T> == QVector<T*>. Lors d'une réallocation le coup reste minime puisqu'au lieu de copier les instances de T, on copie des instances de T*, donc un type garanti primitif.

  14. #34
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    [*] pour faire très simple, QList<T> == QVector<T*>. Lors d'une réallocation le coup reste minime puisqu'au lieu de copier les instances de T, on copie des instances de T*, donc un type garanti primitif.
    comme cela ok.
    Du moins ca reviens au même

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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