Rumah > pembangunan bahagian belakang > C++ > Mengapakah `std::sort` Gagal Mengisih `std::list` Struktur?

Mengapakah `std::sort` Gagal Mengisih `std::list` Struktur?

Linda Hamilton
Lepaskan: 2024-11-10 22:00:03
asal
609 orang telah melayarinya

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

Isih Senarai dengan Fungsi Isih STL: Isu Pelaksanaan

Apabila cuba mengisih senarai struktur menggunakan fungsi std::sort , anda mungkin menghadapi ralat kompilasi yang menunjukkan operator hilang-. Ralat ini timbul apabila pembanding yang dibekalkan, SortDescending, beroperasi pada elemen std::list, yang menyokong iterator dwiarah dan bukannya iterator akses rawak yang diperlukan oleh std::sort.

Untuk menyelesaikan isu ini, bukannya menggunakan std::sort, gunakan std::list<>::fungsi ahli sort, yang direka untuk mengendalikan senarai secara khusus. Berikut ialah kod yang diubah suai menggunakan std::list<>::sort:

Result.poly.sort(SortDescending());
Salin selepas log masuk

Perhatikan bahawa fungsi ahli std::list<>::sort juga memerlukan fungsi pembanding. Pembanding SortDescending kekal tidak berubah:

struct SortDescending
{
    bool operator()(const term&amp; t1, const term&amp; t2)
    { 
        return t2.pow < t1.pow; 
    }
};
Salin selepas log masuk

Dengan menggunakan std::list<>::sort dengan SortDescending comparator, anda boleh berjaya mengisih senarai anda dalam tertib menurun berdasarkan ahli 'pow' struktur 'istilah'.

Atas ialah kandungan terperinci Mengapakah `std::sort` Gagal Mengisih `std::list` Struktur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan