Rumah >pembangunan bahagian belakang >C++ >Apakah Keperluan Utama yang Mesti Dipuaskan Kelas untuk Digunakan sebagai Key in std::map?
Keperluan Utama untuk std::map
Dalam menggunakan std::map, persoalan biasa timbul mengenai ciri-ciri yang mesti dimiliki oleh kelas utama untuk berfungsi sebagai kunci yang sah.
Prasyaratnya agak mudah: kelas kunci mesti menyediakan salinan dan tugasan keupayaan. Susunan sebenar dalam peta ditentukan oleh hujah templat ketiga atau hujah pembina (jika dinyatakan). Argumen ini biasanya lalai kepada std::less
Untuk menyesuaikan susunan kunci, anda boleh mencipta pengendali perbandingan, sebaik-baiknya sebagai objek berfungsi. Berikut ialah contoh operator sedemikian untuk jenis hipotesis MyType:
struct CmpMyType { bool operator()(MyType const& lhs, MyType const& rhs) const { // Implementation of the comparison logic... } };
Perhatikan bahawa pengendali perbandingan ini mesti menentukan susunan yang ketat. Khususnya, jika CmpMyType()(a, b) mengembalikan benar, maka CmpMyType()(b, a) mesti mengembalikan palsu. Jika kedua-dua ungkapan dinilai palsu, unsur-unsur dianggap sama dan tergolong dalam kelas kesetaraan yang sama. Dengan mematuhi keperluan ini, anda boleh melanjutkan kefungsian kelas kunci anda untuk berfungsi sebagai kunci yang sah dalam std::map.
Atas ialah kandungan terperinci Apakah Keperluan Utama yang Mesti Dipuaskan Kelas untuk Digunakan sebagai Key in std::map?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!