Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengulangi Peta Bersarang dalam C?

Bagaimanakah Saya Boleh Mengulangi Peta Bersarang dalam C?

DDD
Lepaskan: 2024-12-04 20:23:12
asal
164 orang telah melayarinya

How Can I Iterate Over Nested Maps in C  ?

Lelaran Melalui Peta Bersarang dalam C

Membulat melalui peta peta dalam C boleh dicapai menggunakan gelung bersarang. Pertimbangkan bekas berikut:

std::map<std::string, std::map<std::string, std::string>> m;

// Example data
m["name1"]["value1"] = "data1";
m["name1"]["value2"] = "data2";
m["name2"]["value1"] = "data1";
m["name2"]["value2"] = "data2";
m["name3"]["value1"] = "data1";
m["name3"]["value2"] = "data2";
Salin selepas log masuk

Nested For Gelung:

Untuk mengulangi peta ini, gunakan nested for loops:

for (auto const &ent1 : m) {
  // ent1.first is the outer key
  for (auto const &ent2 : ent1.second) {
    // ent2.first is the inner key
    // ent2.second is the value
  }
}
Salin selepas log masuk

Pendekatan ini memberikan akses kepada kunci luar, kunci dalam dan nilai untuk setiap elemen dalam bersarang peta.

Penambahbaikan C 11:

Dalam C 11, gelung berasaskan julat boleh digunakan untuk memudahkan kod di atas:

for (auto const &[outer_key, inner_map] : m) {
  for (auto const &[inner_key, inner_value] : inner_map) {
    // Access outer_key, inner_key, and inner_value directly
  }
}
Salin selepas log masuk

C 17 Ikatan Berstruktur:

Dalam C 17, pengikatan berstruktur boleh memudahkan lagi sintaks:

for (auto const &[outer_key, inner_map] : m) {
  for (auto const &[inner_key, inner_value] : inner_map) {
    // Access outer_key, inner_key, and inner_value without need for variables
  }
}
Salin selepas log masuk

Dengan menggunakan kaedah ini, anda boleh menggelung dengan cekap melalui peta bersarang dan mengakses data yang terkandung di dalamnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulangi Peta Bersarang dalam C?. 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