Apabila menggunakan gelung berasaskan julat untuk() dalam C dengan bekas perpustakaan standard seperti std::map, memahami jenis pembolehubah yang terhasil adalah penting. Artikel ini menyelidiki kerumitan peta dalam gelung berasaskan julat, memberikan cerapan tentang perkara yang diharapkan.
Lazimnya, berdasarkan julat untuk() gelung dengan bekas seperti std::vector memberikan akses terus kepada setiap elemen nilai. Walau bagaimanapun, untuk bekas seperti std::map, keadaan menjadi lebih bernuansa sedikit.
Dalam kes std::map, pembolehubah (cth., abc dalam contoh) dalam julat berasaskan untuk() gelung ialah jenis peta
Mengakses kunci dan nilai daripada abc memerlukan langkah tambahan. Dalam C 17 dan ke atas, gelung berasaskan julat yang dimusnahkan membenarkan akses terus kepada kedua-dua kunci dan nilai:
<code class="cpp">for (auto& [key, value]: myMap) { std::cout << key << " has value " << value << std::endl; }</code>
Sebagai alternatif, anda boleh menggunakan gelung berasaskan julat tradisional dalam C 11 dan C 14:
<code class="cpp">for (const auto& kv : myMap) { std::cout << kv.first << " has value " << kv.second << std::endl; }</code>
Dengan menguraikan setiap pasangan nilai kunci secara manual, anda mendapat akses kepada kedua-dua kunci dan nilai. Selain itu, menandakan pembolehubah kv sebagai const memberikan pandangan baca sahaja bagi nilai.
Memahami nilai_jenis dan nuansa gelung for() berasaskan julat dengan std::map adalah penting untuk penggunaan yang berkesan. Pengetahuan ini membolehkan anda mengakses dan memanipulasi pasangan nilai kunci dengan kejelasan dan kecekapan.
Atas ialah kandungan terperinci Bagaimanakah Kelakuan Gelung Berasaskan Julat Untuk() Berbeza dengan std::map dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!