Comparaison de pointeurs dans une liste

ezechiel -  
mamiemando Messages postés 34243 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour tout le monde.
Je suis confronté depuis hierà un problème ardu en C++ qui se décrit comme suis:
je dispose d'une liste doublement chaînée de pointeur d'objet A
list<A*>MaListe.

class A{
private:
int id;
}

Je voudrais faire un tri sur cette liste en fonction des id mais comme vous l'aurez deviné, un MaListe->sort() ne fonctionne pas car comparaison de pointeur et nom d'objet de classe A.(
NB: j'ai redefini les opérateurs de comparaison dans ma classe A)
Je pense qu'il faut donner un prédicat unaire à la fonction sort du genre sort(MonPredicat<A*>) mais je n'ai aucune idée de la façon d'écrire ce template.
Si vous pouviez m'aider ce serai t sympa!
++
A voir également:

1 réponse

mamiemando Messages postés 34243 Date d'inscription   Statut Modérateur Dernière intervention   7 898
 
Euh attend si l'objectif c'est d'avoir une liste triée d'élements, pourquoi ne pas directement utiliser des std::set (pas de doublons au sens de la relation d'ordre) ou des std::multiset (doublons autorisés au sens de la relation d'ordre). La relation d'ordre utilisé par défaut est <, mais tu peux la redéfinir :
c tri de tableau

Bonne chance
0