Kunci untuk std::map: Keperluan dan Pelaksanaan
Apabila menggunakan std::map untuk memetakan objek kelas yang berbeza, kelas yang anda berniat untuk digunakan sebagai kunci mungkin tidak memenuhi keperluan yang diperlukan untuk kunci yang sah. std::map menyusun kandungannya menggunakan mekanisme pesanan, yang menimbulkan persoalan sama ada mana-mana kelas arbitrari boleh berfungsi sebagai kunci atau jika keperluan khusus wujud.
Kunci untuk std::map mesti mematuhi perkara berikut keperluan:
Penyusunan peta dikawal oleh argumen templat ketiga atau argumen pembina, yang lalai kepada std::less
struct CmpMyType { bool operator()( MyType const& lhs, MyType const& rhs ) const { // Implementation of comparison logic } };
Pastikan operator perbandingan anda mentakrifkan pesanan yang ketat. Jika CmpMyType()( a, b ) mengembalikan benar, CmpMyType()( b, a ) mesti mengembalikan palsu. Apabila kedua-duanya mengembalikan palsu, elemen dianggap setara dan tergolong dalam kelas kesetaraan yang sama.
Atas ialah kandungan terperinci Bolehkah Mana-mana Kelas Berfungsi sebagai Kunci untuk std::map?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!