Pembanding Telus untuk Bekas Bersekutu C
Memahami Konsep Pembanding Telus
Dalam C 14, bekas bersekutu memperkenalkan konsep baharu yang dikenali sebagai "pembanding telus." Mengikut piawaian, templat fungsi ahli mencari, mengira, menghadkan_bawah, menghadkan_ atas dan julat_sama hanya mengambil bahagian dalam resolusi beban lampau jika jenis Compare::is_transparent wujud.
Pembanding lutsinar ialah jenis yang mentakrifkan is_transparent bersarang. taip. Jenis ini memberi isyarat kepada bekas bersekutu bahawa ia harus menganggap pembanding itu telus untuk carian heterogen. Hasilnya, bekas itu kini boleh melakukan perbandingan antara jenis kunci bekas dan jenis berbeza yang setanding dengan jenis kunci.
Faedah Pembanding Telus
Pembanding Lutsinar menyelesaikan masalah carian heterogen dalam bekas bersekutu. Secara tradisinya, bekas hanya boleh dicari dengan kunci jenis yang sama seperti jenis kunci bekas. Dengan pembanding telus, bekas boleh dicari dengan nilai yang setanding dengan jenis kunci tetapi tidak semestinya daripada jenis yang sama.
Melaksanakan Pembanding Telus
C 14 menyediakan templat perpustakaan dipanggil kurang, yang boleh digunakan untuk menentukan pembanding telus. Templat yang kurang mempunyai pelaksanaan lalai yang mengkhususkan void dan membenarkan sebarang jenis dibandingkan. Dengan menyatakan std::less
Kesan ke atas Bekas Standard
Pengenalan pembanding lutsinar mengubah tingkah laku bekas bersekutu hanya jika pembanding lutsinar digunakan. Secara lalai, bekas mengekalkan tingkah laku asalnya. Apabila menggunakan pembanding lutsinar, seperti std::less
Dalam contoh yang disediakan, std::set
Atas ialah kandungan terperinci Bagaimanakah Pembanding Telus Mendayakan Carian Heterogen dalam Bekas Bersekutu C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!