Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah Jenis Nilai Pembolehubah dalam Range-Based for() Gelung dengan std::map?

Apakah Jenis Nilai Pembolehubah dalam Range-Based for() Gelung dengan std::map?

Susan Sarandon
Susan Sarandonasal
2024-10-27 21:06:29448semak imbas

 What is the Value Type of the Variable in a Range-Based for() Loop with std::map?

Berasaskan Julat untuk() Gelung dengan std::map: Membedah Jenis Nilai

Apabila menggunakan gelung berasaskan julat untuk() dengan std::map, pemahaman jenis nilai pembolehubah menjadi penting. Dalam C 11 dan ke atas, gelung berasaskan julat menyediakan akses terus kepada elemen individu dalam bekas. Walau bagaimanapun, apabila berurusan dengan peta, jenis pembolehubah dalam gelung tersebut mungkin memerlukan penjelasan lanjut.

Dalam std::map, setiap elemen diwakili oleh std::pair, di mana K dan V menandakan jenis kunci dan nilai, masing-masing. Jenis pasangan ini dikenali sebagai nilai_jenis peta.

C 17 dan Lebih Tinggi

Dalam C 17 dan lebih tinggi, berdasarkan julat dipertingkat untuk() gelung membolehkan ringkas dan lelaran elegan ke atas std::map. Di sini, pembolehubah diisytiharkan sebagai tuple yang mengandungi kunci dan nilai:

<code class="cpp">for (auto& [key, value]: myMap) {
    // Access key and value directly
}</code>

C 11 dan C 14

Dalam C 11 dan C 14, dipertingkatkan untuk gelung boleh digunakan, tetapi kunci dan nilai perlu diekstrak secara manual daripada setiap std::pair:

<code class="cpp">for (const auto& kv : myMap) {
    // Extract key and value manually:
    auto key = kv.first;
    auto value = kv.second;
}</code>

Memahami Jenis Nilai

Pengambilan kunci ialah jenis nilai dalam gelung berasaskan julat for() dengan std::map ialah std::pair. Ini membolehkan akses terus kepada data kunci dan nilai tanpa memerlukan penyahrujukan lelaran, menjadikan kod lebih ringkas dan boleh dibaca.

Atas ialah kandungan terperinci Apakah Jenis Nilai Pembolehubah dalam Range-Based for() Gelung dengan std::map?. 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