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
634 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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal