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 :

Petite question sur les conteneurs de pointeurs dans Qt


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut Petite question sur les conteneurs de pointeurs dans Qt
    Bonjour,
    J'utilise actuellement un QVector< T* > pour stocker des pointeurs, j'essaie de trouver une alternative qui prenne possession du pointeur. C'est à dire qui supprime l'objet pointé si celui-ci est supprimé ou écrasé, ou alors si le conteneur lui-même est carrément vidé ou supprimé.

    En fait, l'idéal serait un équivalent de boost ptr container, mais je n'arrive pas à trouver d'équivalent dans la version actuelle, il semblerait qu'une classe QPtrList existait mais a été supprimée en version 4.

    La doc recommande d'utiliser QList<T> à la place, cependant il ne semble pas que cette classe soit capable d'insérer quoi que ce soit sans faire une copie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    QList<T>[i] = x //une copie de X dont QList est propriétaire est créée sur le tas.
    Et si on l'utilise sous forme de QList<T*> les inconvénients sont les mêmes que pour un QVector<T*> du côté de la destruction des objets.

    Existe-t-il une solution pour ne pas se coltiner le gestion à mano, autre qu'encapsuler la classe? Comment vous feriez?
    Je précise que dans ce cas ce n'est pas idéal d'utiliser des shared_ptr autour de mes objets pour des raisons d'efficacité...

  2. #2
    Membre expérimenté
    Avatar de Niak74
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    271
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 271
    Par défaut
    cependant il ne semble pas que cette classe soit capable d'insérer quoi que ce soit sans faire une copie.
    Voir le COW de Qt.

    http://qt.developpez.com/faq/?page=g...optimise-copie
    http://qt.developpez.com/doc/4.5/shared/

  3. #3
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Merci mais ça n'entre pas en ligne de compte ici.
    C'est l'objet QList est partagé, pas forcément ce que tu mets dedans....

  4. #4
    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.
    Non y as rien à ma connaissance.
    Peut être avec une QList de qsharedpointer
    http://qt.developpez.com/doc/4.5/qsharedpointer/

    Aucune idée si c'est une bonne idée

  5. #5
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Citation Envoyé par yan Voir le message
    Salut.
    Non y as rien à ma connaissance.
    Peut être avec une QList de qsharedpointer
    http://qt.developpez.com/doc/4.5/qsharedpointer/

    Aucune idée si c'est une bonne idée
    Merci
    J'ai pensé à cela en effet, mais malheureusement l'impact sur les performances est trop violent, je reste pour l'instant sur des delete manuels.
    J'arrive pas à comprendre pourquoi toutes ces classes
    http://qt.developpez.com/doc/3.2/qptrcollection/

    ont été mises au placard, leur utilisation fait totalement du sens pourtant... C'est vraiment bizarre je trouve.

  6. #6
    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
    http://qt.developpez.com/doc/4.5/por...d-classes-qptr

    Au pire tu peut faire ton smart ptr sans trop de difficulté, non?

Discussions similaires

  1. Petite question sur les extensions dans un XSD
    Par LaBastoss dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 27/09/2011, 13h32
  2. petite question sur les pointeurs
    Par Krisprolls31 dans le forum C
    Réponses: 4
    Dernier message: 20/08/2010, 22h19
  3. Petite question sur les tabulations dans un jList
    Par Dambrath dans le forum Composants
    Réponses: 3
    Dernier message: 30/03/2009, 21h39
  4. Réponses: 5
    Dernier message: 16/06/2008, 22h00
  5. une petite question sur les pointeurs
    Par guy777 dans le forum C
    Réponses: 4
    Dernier message: 06/10/2006, 17h44

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