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

Bagaimanakah Anda Boleh Menyesuaikan Perbandingan Utama dalam Peta STL?

DDD
Lepaskan: 2024-11-03 13:37:02
asal
959 orang telah melayarinya

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();
    }
};
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan