En essayant de trier une liste contenant des instances d'une structure personnalisée par ordre décroissant, vous avez rencontré une erreur de compilation tournant autour de la non-disponibilité de l'opérateur '-' pour la liste 'Résultat'. Cette erreur provient de l'inadéquation entre l'exigence de la fonction de tri pour les itérateurs à accès aléatoire et les itérateurs bidirectionnels renvoyés par std::list::begin() et std::list::end().
Pour résoudre ce problème problème, il est conseillé d'utiliser la fonction membre std::list::sort, qui est conçue pour fonctionner avec des itérateurs bidirectionnels. Cette fonction prend les mêmes arguments que std::sort et utilise en interne un algorithme de tri optimisé pour les listes.
Voici une illustration de la façon d'utiliser la fonction std::list::sort pour votre scénario spécifique :
Result.poly.sort([](const term& t1, const term& t2) { return t2.pow < t1.pow; });
Avec cet ajustement, l'erreur de compilation sera résolue et votre code triera la liste 'poly' par ordre décroissant en fonction du membre 'pow' de son constituant éléments 'term'.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!