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

C++ Discussion :

Tri d'objets dans un vecteur


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Par défaut Tri d'objets dans un vecteur
    bonjour à tous;

    je voudrais trier un vector d'objet, mais je ne sais pas comment proceder.
    pour les int et string, j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    vector<CClasse> MonVecteur;
    MonVecteur.soer(MonVecteur.begin(), MonVecteur.end(), cmp())
     
    bool cmp(const CClasse& C1,  const CClasse& C2)
    {
    return C1.poids()<C2.poids();
     
    }
    Est ce que cette façon de faire est correcte, sinon auriez vous une proposition
    correcte.
    Merci à tous.

  2. #2
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    Tu peux utiliser la fonction "sort" de la STL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sort(a.begin, a.end);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Par défaut
    Rectification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    vector<CClasse> MonVecteur;
    MonVecteur.sort(MonVecteur.begin(), MonVecteur.end(), cmp())
     
    bool cmp(const CClasse& C1,  const CClasse& C2)
    {
    return C1.poids()<C2.poids();
     
    }

  4. #4
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    Il te suffit de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sort(a.begin, a.end);
    et ton vecteur "a" est trié...

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut
    Citation Envoyé par Jahjouh
    Rectification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    vector<CClasse> MonVecteur;
    MonVecteur.sort(MonVecteur.begin(), MonVecteur.end(), cmp())
     
    bool cmp(const CClasse& C1,  const CClasse& C2)
    {
    return C1.poids()<C2.poids();
     
    }
    Presque ça, notemment à cause du cmp(). Il faut passer un pointeur de fonction, pas le résultat d'une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::sort(MonVecteur.begin(), MonVecteur.end(), cmp);

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu peux aussi utiliser un foncteur, ce sera plus rapide. Il y a tout ce qu'il faut dans la FAQ C++.

Discussions similaires

  1. Pointeur vers objet dans un vecteur
    Par julieng31 dans le forum C++
    Réponses: 3
    Dernier message: 27/09/2013, 09h29
  2. Récupération d'un objet dans un vecteur
    Par Madoka dans le forum Langage
    Réponses: 8
    Dernier message: 10/03/2009, 21h59
  3. [C#] Tri d'objet dans une ArrayList
    Par guillaume16 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/03/2006, 12h05
  4. destruction d'objets dans un vecteur
    Par titouille dans le forum C++
    Réponses: 12
    Dernier message: 28/07/2005, 19h20
  5. Mettre un objet utilisant COM dans un vecteur
    Par 0xYg3n3 dans le forum MFC
    Réponses: 7
    Dernier message: 18/04/2005, 15h50

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