Trier une liste avec sort de la STL

DrSteffie Messages postés 4 Date d'inscription jeudi 23 mars 2006 Statut Membre Dernière intervention 8 juin 2006 - 15 mai 2006 à 17:08
cs_polo85 Messages postés 1 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 25 juillet 2006 - 25 juil. 2006 à 14:31
Bonjour à tous,

Je suis un programmeur confirmé de C, et je suis passé depuis 6 mois au C++. Je n'utilise pas la plupart des avantages de ce langages, mais je désire tout de même utilisé les algorithmes de la STL. Mon problème ici est de classer une liste d'élément avec l'algorithme "sort". Après 2 heures de Google, je n'arrive toujours pas a trouver une explication claire. Grossièrement ma liste est composé de:

class Element
{
... ;
... ;
... ;
int cpt ;
}

std::list<Element*> LElement;

Qqu'un voudrait-il m'indiquer comment classer cette liste en prenant comme parametre "cpt". C'est a dire classer la liste du plus grand "cpt" au plus petit en utilisant "sort" fourni par la STL ?

Je vous remercie d'avance pour les nombreuses réponses...

DrSteffie.

1 réponse

cs_polo85 Messages postés 1 Date d'inscription mardi 25 juillet 2006 Statut Membre Dernière intervention 25 juillet 2006
25 juil. 2006 à 14:31
en fait c'est super simple, il suffit que dans ta classe Element, tu surcharges l'opérateur < (il te permet d'ordonner ta liste). Ensuite il suffit de faire LElement.sort(). Sinon tu peux aussi définir ta propre fonction de comparaison et la passer en argument: bool comparaison (const Element& e1, const Element& e2); et tu appelles le sort: LElement.sort(comparaison).
0
Rejoignez-nous