Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menyesuaikan Pengisihan Kunci dalam Peta C?
Pembanding Tersuai untuk Peta
Dalam C , peta menggunakan fungsi perbandingan untuk menyusun pasangan nilai kunci mereka. Secara lalai, pembanding rentetan terbina dalam peta membandingkan rentetan mengikut abjad. Walau bagaimanapun, anda boleh mengatasi pembanding ini untuk menentukan kriteria perbandingan anda sendiri.
Menggunakan Pembanding Tersuai
Untuk menentukan pembanding rentetan anda sendiri, cipta struct yang melaksanakan operator () kaedah. Kaedah harus mengambil dua rentetan sebagai argumen dan mengembalikan nilai boolean yang menunjukkan susunannya:
<code class="cpp">struct cmpByStringLength { bool operator()(const std::string& a, const std::string& b) const { return a.length() < b.length(); } };
Pembanding ini membandingkan rentetan mengikut panjangnya, menaik.
Membuat Peta dengan Pembanding Tersuai
Untuk membuat peta menggunakan pembanding tersuai anda, sediakan ia sebagai hujah templat ketiga:
<code class="cpp">std::map<std::string, std::string, cmpByStringLength> myMap;</code>
Sebagai alternatif, anda boleh menghantar pembanding kepada pembina peta:
<code class="cpp">std::map<std::string, std::string> myMap(cmpByStringLength());</code>
Pilihan Isih Lain
Mengatasi pembanding membolehkan anda mengisih peta anda berdasarkan mana-mana kriteria tersuai. Ambil perhatian bahawa apabila membandingkan mengikut panjang, hanya satu rentetan bagi setiap panjang boleh menjadi kunci unik dalam peta.
Untuk keperluan pengisihan yang lebih kompleks, anda juga boleh meneroka menggunakan perpustakaan pihak ketiga seperti bekas multi_index Boost.
Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Pengisihan Kunci dalam Peta C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!