首頁 >後端開發 >C++ >如何在 C 中有效地迭代嵌套映射?

如何在 C 中有效地迭代嵌套映射?

Linda Hamilton
Linda Hamilton原創
2024-12-08 08:54:11455瀏覽

How Can I Efficiently Iterate Through Nested Maps in C  ?

在 C 中迭代多個映射

在 C 中瀏覽多個層級的巢狀映射可能是一項艱鉅的任務。本指南提供了循環遍歷地圖容器(稱為地圖的地圖)的全面解決方案。

該方法利用 C 11 中引入的強大的基於範圍的 for 迴圈。讓我們深入研究程式碼:

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

for (auto const &ent1 : mymap) {
  for (auto const &ent2 : ent1.second) {
    std::cout << ent1.first << " " << ent2.first << " " << ent2.second << std::endl;
  }
}

在外循環中,ent1 保存一個鍵值對,其中 ent1.first 表示第一級鍵。內部循環迭代 ent1.second 的值,這是另一個映射,ent2 提供對第二級映射的鍵和值的存取。

如果您喜歡使用引用變數的明確定義,您可以可以引入外部鍵、內部鍵和內部值等臨時變數來闡明每個變數的用途。

C 17 引入結構化綁定,提供簡潔的語法來存取巢狀元素。以下程式碼片段示範了此功能:

for (auto const &amp;[outer_key, inner_map] : mymap) {
  for (auto const &amp;[inner_key, inner_value] : inner_map) {
    std::cout << outer_key << " " << inner_key << " " << inner_value << std::endl;
  }
}

在此範例中,外部鍵和值以及內部鍵和值可以在循環體內直接存取。

透過利用這些技術,您可以毫不費力地迭代 C 中的多層巢狀映射。快樂編碼!

以上是如何在 C 中有效地迭代嵌套映射?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn