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

SL & STL C++ Discussion :

utilisation de list::sort() ?


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut utilisation de list::sort() ?
    Bonjour,

    J'ai un petit problème avec l'utilisation de la STL et j'ai beau chercher pas moyen de trouver la solution.
    J'ai une liste de pointeurs de Personne qui est une classe mère abstraite et qui a pour filles Etudiant, Enseignant, etc...

    Je range donc des Etudiant, Enseignant dans cette list<Personne *> et tout va bien
    Le problème est que je voudrai utiliser la méthode list::sort() qui bien-entendu ne trie pas mes Personne comme je le voudrai.
    J'ai donc tenté des milliers de possibilités de surcharge de l'opérateur < comme indiqué dans les tutoriel mais rien n'y fait. J'aimerai donc pouvoir les trier par nom puis par prenom et pourquoi pas sur d'autres champs dans les classes filles par polymorphisme.

    Quelqu'un sait comment faire ?

    Merci d'avance

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Si tu as une liste de Personne*, c'est l'opérateur < sur les pointeurs que tu devrais surcharger. Mais ce n'est pas possible. Il te faut donc fournir un foncteur pour la comparaison.

  3. #3
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut
    Oui justement c'est pour ça que je suis coincée.

    C'est quoi un foncteur ?
    J'en ai vu un exemple sur la FAQ mais je n'ai pas trop compris le rapport avec mon cas vu que j'utilise des pointeurs justement...

    Merci

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Un foncteur est un objet qui se comporte comme un pointeur vers une fonction. D'ailleurs un pointeur vers fonction est le cas le plus simple; donc tu peux te définir une fonction qui fait la comparaison des pointeurs comme tu le veux et tu la passes comme argument à list::sort.

  5. #5
    Membre éclairé Avatar de kitsune
    Inscrit en
    Décembre 2004
    Messages
    341
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2004
    Messages : 341
    Par défaut
    Ah ? Donc je peux définir une fonction de ce style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    bool comparePersonne(const Personne* p1, const Personne* p2) {
    ...
    }
    ?

    et je mets quoi dans sort ? il faut bien que je renseigne les paramètres non ?
    Et donc il pourra comparer des Etudiants, Enseignants sans problème grâce à l'héritage ?

    Encore merci...

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l.sort(comparePersonne);

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

Discussions similaires

  1. [XSLT] Comment utiliser la balise sort
    Par Extra-Nitro dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 24/08/2006, 14h54
  2. Utilisation des liste liées (ajax) avec du perl
    Par Jim_Nastiq dans le forum Web
    Réponses: 1
    Dernier message: 12/07/2006, 12h07
  3. Réponses: 13
    Dernier message: 10/03/2006, 01h13
  4. Utilisation des liste à choix multiples
    Par mic79 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/07/2005, 11h40
  5. Réponses: 16
    Dernier message: 07/04/2005, 11h36

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