Maison > développement back-end > C++ > Pourquoi `std::sort` ne parvient-il pas à trier une `std::list` de structures ?

Pourquoi `std::sort` ne parvient-il pas à trier une `std::list` de structures ?

Linda Hamilton
Libérer: 2024-11-10 22:00:03
original
578 Les gens l'ont consulté

Why Does `std::sort` Fail to Sort a `std::list` of Structures?

Tri d'une liste avec la fonction de tri STL : un problème de mise en œuvre

Lors de la tentative de tri d'une liste de structures à l'aide de la fonction std::sort , vous pouvez rencontrer une erreur de compilation indiquant un opérateur manquant. Cette erreur se produit lorsque le comparateur fourni, SortDescending, opère sur des éléments d'une std::list, qui prend en charge les itérateurs bidirectionnels plutôt que les itérateurs à accès aléatoire nécessaires à std::sort.

Pour résoudre ce problème, au lieu d'utiliser std::sort, utilisez la fonction membre std::list<>::sort, conçue pour gérer spécifiquement les listes. Voici le code modifié en utilisant std::list<>::sort:

Result.poly.sort(SortDescending());
Copier après la connexion

Notez que la fonction membre std::list<>::sort nécessite également une fonction de comparaison. Le comparateur SortDescending reste inchangé :

struct SortDescending
{
    bool operator()(const term&amp; t1, const term&amp; t2)
    { 
        return t2.pow < t1.pow; 
    }
};
Copier après la connexion

En utilisant std::list<>::sort avec le comparateur SortDescending, vous pouvez réussir à trier votre liste par ordre décroissant en fonction du membre 'pow' du structure de « terme ».

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