DrSteffie
Messages postés4Date d'inscriptionjeudi 23 mars 2006StatutMembreDernière intervention 8 juin 2006
-
15 mai 2006 à 17:08
cs_polo85
Messages postés1Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention25 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...
cs_polo85
Messages postés1Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention25 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).