Utilisateur anonyme
-
3 janv. 2008 à 19:13
Utilisateur anonyme -
7 janv. 2008 à 19:23
Bonsoir,
j'ai un problème avec une list.
J'ai définit une class fiche. J'ai une list de pointeur vers des fiches.
Je voudrais trier cette list. Avec sort, ça semble facile, à condition d'avoir un ordre sur le type de données de la list. Or j'ai surchargé l'operator< sur les fiches, pour avoir un ordre.
Est-ce possible de faire de même sur des pointeurs (qui seront dans l'ordre des fiches vers lesquels ils pointent)?
int main ()
{
list<string*> mylist;
list<string*>::iterator it; string un "un", deux "deux", trois = "trois";
mylist.push_back (&un);
mylist.push_back (&deux);
mylist.push_back (&trois);
Effectivement, ça marche beaucoup mieux, en induisant un ordre sur les pointeurs. J'ai donc fait :
bool compare(fiche* A, fiche* B){return (*A)<(*B);}
J'avais surchargé l'opérateur < dans la classe fiche.
J'ai aussi une classe Repertoire qui contient une liste de pointeurs vers des fiches. Et une fonction Trier: