Menukar Bekas Bersekutu dalam C 14 dengan Pembanding Lutsinar
C 14 telah memperkenalkan perubahan ketara dalam bekas bersekutu, membenarkan "pembanding telus. " Perubahan ini memerlukan templat fungsi ahli find, count, lower_bound, upper_bound, dan equal_range tidak mengambil bahagian dalam resolusi lebihan melainkan jenis Compare::is_transparent wujud.
Tujuan Pembanding Telus
Pembanding lutsinar membolehkan perbandingan elemen dalam bekas bersekutu menggunakan jenis yang berbeza daripada jenis kunci. Ini mengembangkan kefungsian bekas bersekutu, membolehkan carian yang lebih fleksibel dan cekap.
Faedah dan Perubahan
Perubahan ini memberi manfaat kepada senario carian heterogen, membolehkan perbandingan langsung pelbagai jenis data dalam bekas. Walau bagaimanapun, ia tidak secara asasnya mengubah tingkah laku bekas standard secara lalai. Jika pembanding telus (cth., std::less<>) tidak digunakan secara eksplisit, bekas akan terus beroperasi seperti sebelum ini.
Kesan terhadap Kod Sedia Ada
Pembanding lalai untuk std::set sekarang secara tersirat menentukan Key = std::less
Ringkasnya, pembanding telus dalam C 14 menyediakan kefungsian yang dipertingkatkan untuk bekas bersekutu, membolehkan perbandingan data yang lebih pelbagai. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pembanding telus dilumpuhkan secara lalai dan boleh diterima pakai dengan selamat oleh kod sedia ada jika perlu.
Atas ialah kandungan terperinci Bagaimanakah Pembanding Telus C 14 Mengubah Carian Bekas Bersekutu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!