Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Anda Boleh Menyesuaikan Perbandingan Utama dalam Peta STL?
Menyesuaikan Pembanding untuk Perbandingan Utama Peta
Apabila bekerja dengan peta, pilihan pembanding utama boleh memberi kesan yang ketara kepada gelagat koleksi. Dalam peta STL, pembanding lalai membandingkan kunci berdasarkan susunan semula jadinya. Walau bagaimanapun, adalah mungkin untuk mengatasi lalai ini dan menentukan pembanding tersuai untuk perbandingan utama.
Mencipta Pembanding Tersuai
Untuk menentukan pembanding tersuai, cipta kelas atau struktur yang melaksanakan fungsi operator(). Fungsi ini mengambil dua hujah yang mewakili kunci untuk membandingkan dan mengembalikan nilai boolean yang menunjukkan hasil perbandingan. Sebagai contoh, untuk membandingkan kekunci mengikut panjang rentetannya, anda boleh mencipta pembanding berikut:
<code class="cpp">struct cmpByStringLength { bool operator()(const std::string& a, const std::string& b) const { return a.length() < b.length(); } };
Menggunakan Pembanding Tersuai dalam Peta
Sebaik sahaja anda mempunyai pembanding tersuai , anda boleh menggunakannya untuk memulakan peta dengan menghantarnya sebagai hujah templat ketiga:
<code class="cpp">std::map<std::string, std::string, cmpByStringLength> myMap;</code>
Sebagai alternatif, anda juga boleh menghantar pembanding kepada pembina peta:
<code class="cpp">std::map<std::string, std::string> myMap(std::less<std::string>(), cmpByStringLength());</code>
Pilihan Isih Lain
Semasa menggunakan pembanding tersuai memberikan kefleksibelan, perlu diingat bahawa menggunakan pembanding tersuai berdasarkan panjang mungkin mengehadkan keupayaan anda untuk mempunyai berbilang kunci dengan panjang yang sama. Jika anda memerlukan mekanisme pengisihan yang lebih kompleks, pertimbangkan untuk menggunakan struktur data alternatif seperti Boost.MultiIndex atau pustaka pengisihan luaran.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Menyesuaikan Perbandingan Utama dalam Peta STL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!