Maison > développement back-end > C++ > Comment trier une liste de structures personnalisées par ordre décroissant à l'aide de la fonction de tri de STL ?

Comment trier une liste de structures personnalisées par ordre décroissant à l'aide de la fonction de tri de STL ?

Barbara Streisand
Libérer: 2024-11-09 04:44:02
original
811 Les gens l'ont consulté

How to Sort a List of Custom Structs in Descending Order Using STL's Sort Function?

Tri d'une liste à l'aide de la fonction de tri de STL : surmonter les erreurs de compilation

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;
});
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal