j'ai une liste de class Citoyen que j'aimerai trier selon un critère par example leur id
donc j'ai une liste de Citoyen :
je fais quelque insert dans ma list :
Code : Sélectionner tout - Visualiser dans une fenêtre à part list<unique_ptr<Citoyen>> ListeDePatient;
J'aimerai la trier selon le id, donc je me suis fais une fonction qui retourne le citoyen ayant le plus grand id :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ListeDePatient.push_back(unique_ptr<Citoyen>(new Citoyen(3,"bob","2012"))); ListeDePatient.push_back(unique_ptr<Citoyen>(new Citoyen(1,"roger","2013"))); ListeDePatient.push_back(unique_ptr<Citoyen>(new Citoyen(2,"noob","2011")));
et je trie ma liste :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 bool NasGreater(unique_ptr<Citoyen> a, unique_ptr<Citoyen> b) { if(a._Myptr->GetNas() == b._Myptr->GetNas()) return a._Myptr->GetNas() < b._Myptr->GetNas(); return a._Myptr->GetNas() > b._Myptr->GetNas(); }
J'obtient une erreur lors à sort : impossible de déduire l'Argument modèle pour std::move_iterator<_RanIt> ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part sort(ListeDePatient.begin(),ListeDePatient.end(),NasGreater);
Je comprend pas vraiment l'erreur l'iterator n'est pas capable de parcourir la liste a cause qu'il ne sait pas c'est quoi comme liste ?
Partager