Rumah >pembangunan bahagian belakang >C++ >Apakah Keperluan Utama yang Mesti Ditemui Kelas untuk Digunakan sebagai Kunci dalam std::map?
Keperluan Utama untuk std::map
std::map, bekas nilai kunci dalam C , memerlukan ciri tertentu daripada kuncinya kelas untuk memastikan kefungsian yang betul. Terutamanya, keperluan berikut mesti dipenuhi:
Kebolehsalinan dan Kebolehtugasan:
Kunci peta mesti boleh disalin dan diserahkan, membolehkan nilainya disimpan dan diurus dengan cekap dalam bekas.
Operator Perbandingan:
Untuk mengekalkan pesanan structure, std::map bergantung pada operator perbandingan yang ditakrifkan untuk kelas utama. Operator ini menentukan susunan relatif kunci dan membenarkan bekas mengisih dan mendapatkan semula elemen berdasarkan nilai kunci.
Penyusunan Tegas:
Operator perbandingan untuk kelas utama mesti menentukan pesanan yang ketat. Bagi setiap pasangan kekunci a dan b, pengendali mesti memenuhi syarat berikut:
Contoh Pelaksanaan:
Jika kelas utama kekurangan pengendali yang diperlukan ini, kelas pembalut boleh dibuat untuk melaksanakannya. Sebagai contoh, kelas pembalut berikut menyediakan kefungsian perbandingan untuk struct MyType:
struct CmpMyType { bool operator()(MyType const& lhs, MyType const& rhs) const { // Comparison logic for MyType } };
Dengan menggunakan kelas pembalut seperti CmpMyType, struct MyType asal boleh digunakan sebagai kunci dalam std::map tanpa mengubah suainya pelaksanaan.
Atas ialah kandungan terperinci Apakah Keperluan Utama yang Mesti Ditemui Kelas untuk Digunakan sebagai Kunci dalam std::map?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!