Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengulangi Dengan Cekap Melalui Peta Bersarang dalam C ?

Bagaimana untuk Mengulangi Dengan Cekap Melalui Peta Bersarang dalam C ?

Patricia Arquette
Lepaskan: 2024-12-03 02:08:10
asal
340 orang telah melayarinya

How to Efficiently Iterate Through Nested Maps in C  ?

Lelaran melalui Peta Bersarang dalam C

Pertimbangkan senario di mana anda mempunyai peta bersarang dalam C . Khususnya, peta anda ialah std::map>. Struktur peta ini menyimpan data seperti ini:

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

Untuk mengulangi peta bersarang ini dengan berkesan dan mengakses pelbagai nilai, anda boleh menggunakan teknik berikut:

Menggunakan C 11 Ranged untuk Gelung:

Dengan C 11, anda boleh menggunakan berasaskan julat untuk gelung ke memudahkan proses lelaran. Pendekatan ini mengelakkan salinan yang tidak diperlukan dan menyediakan sintaks yang ringkas.

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

for (auto const &ent1 : mymap) {
  // ent1.first is the first key
  for (auto const &ent2 : ent1.second) {
    // ent2.first is the second key
    // ent2.second is the data
  }
}
Salin selepas log masuk

Menggunakan Definisi Eksplisit Pembolehubah Rujukan:

Sebagai alternatif, anda boleh meningkatkan kebolehbacaan dengan mentakrifkan pembolehubah rujukan secara eksplisit untuk kunci dan nilai. Walaupun pendekatan ini menghasilkan lebih banyak kod, ia secara eksplisit mentakrifkan pembolehubah untuk kejelasan yang lebih baik.

for (auto const &ent1 : mymap) {
  auto const &outer_key = ent1.first;
  auto const &inner_map = ent1.second;
  for (auto const &ent2 : inner_map) {
    auto const &inner_key = ent2.first;
    auto const &inner_value = ent2.second;
  }
}
Salin selepas log masuk

Menggunakan Pengikatan Berstruktur dalam C 17:

Dalam C 17, pengikatan berstruktur menawarkan kaedah yang lebih ringkas dan padat untuk berulang melalui bersarang peta.

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

Atas ialah kandungan terperinci Bagaimana untuk Mengulangi Dengan Cekap Melalui 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan