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

Boost C++ Discussion :

trier un vector via bind


Sujet :

Boost C++

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Par défaut trier un vector via bind
    Bonjour,

    J'ai un vector d'objets qui ont un setter/getter name() de type string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    const std::vector<Taux>& listeTaux = p->GetListTaux();
    std::sort(lisTaux.begin(),listeTaux.end(),boost::bind(&Taux::name,_1));

    je bloque sur la syntaxe à filer à bind

    Merci

  2. #2
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Pourquoi bind ?
    Ce qu'il te faut, c'est l'operator< pour la comparaison...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    bool operator< (const Taux& taux1, const Taux& taux2)
    {
        return taux1.name() < taux2.name();
    }

  3. #3
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Bonjour,

    On peut faire comme ça :

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::sort(listeTaux.begin(),listeTaux.end(), 
                 boost::bind( &Taux::name, _1 ) < boost::bind( &Taux::name, _2 ));

    Mais AMHA, en attendant les lambdas du C++0x, il reste plus clair d'utiliser une fonction libre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    bool CompareTauxByName(const Taux& t1, const Taux& t2) 
    {
    	return t1.name() < t2.name();
    }
    std::sort(listeTaux.begin(),listeTaux.end(), CompareTauxByName);

  4. #4
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    Donner un operator< à Taux est aussi pas mal

Discussions similaires

  1. Trier un vector
    Par vbaddict44 dans le forum C++
    Réponses: 10
    Dernier message: 13/07/2012, 10h57
  2. Redirection via BIND (DNS)
    Par Invité dans le forum Réseau
    Réponses: 4
    Dernier message: 21/06/2011, 14h23
  3. index d un group de radiobutton via binding
    Par ZashOne dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/02/2009, 17h32
  4. Passer un Vector via un DynaValidatorForm
    Par Dendscie dans le forum Struts 1
    Réponses: 6
    Dernier message: 09/09/2008, 12h47
  5. Trier un état via VBA
    Par PoloCF dans le forum Access
    Réponses: 4
    Dernier message: 03/08/2006, 08h25

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