Mengisih Jenis Ditentukan Pengguna dengan Isih Perpustakaan Standard
Mengisih vektor jenis yang ditentukan pengguna (UDT) mengikut pembolehubah ahli tertentu ialah tugas biasa. Fungsi isihan perpustakaan standard boleh melaksanakan operasi ini jika kriteria tertentu dipenuhi.
Bolehkah Isih Perpustakaan Standard Mengendalikan Isih UDT?
Ya, isihan perpustakaan standard boleh digunakan untuk susun UDT berdasarkan pembolehubah ahli. Ini memerlukan dua elemen utama:
Contoh dengan Operator Lebihan:
struct MyType { int a; int b; bool operator<(const MyType& other) const { // Custom comparison logic based on 'a' } };
Contoh dengan Fungsi Pesanan Tersuai:
Anda juga boleh menghantar fungsi pesanan tersuai sebagai hujah untuk mengisih() dan bukannya melaksanakan operator <:
bool compareMyType(const MyType& t1, const MyType& t2) { // Custom comparison logic based on 'a' }
Dalam mana-mana kes, anda boleh mengisih vektor UDT anda menggunakan:
std::sort(moo.begin(), moo.end()); // for operator overload std::sort(moo.begin(), moo.end(), compareMyType); // for custom function
Perhatikan bahawa logik perbandingan (berdasarkan a) harus konsisten dengan susunan pengisihan yang anda inginkan (cth., terendah ke tertinggi, tertinggi ke terendah).
Atas ialah kandungan terperinci Bolehkah Isih Perpustakaan Standard Mengendalikan Jenis Isih Ditentukan Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!