Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Anda Boleh Menyesuaikan Perbandingan Utama dalam Peta STL?

Bagaimanakah Anda Boleh Menyesuaikan Perbandingan Utama dalam Peta STL?

DDD
DDDasal
2024-11-03 13:37:02911semak imbas

How Can You Customize Key Comparisons in STL Maps?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn