在 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 &[outer_key, inner_map] : mymap) { for (auto const &[inner_key, inner_value] : inner_map) { std::cout << outer_key << " " << inner_key << " " << inner_value << std::endl; } }
在此範例中,外部鍵和值以及內部鍵和值可以在循環體內直接存取。
透過利用這些技術,您可以毫不費力地迭代 C 中的多層巢狀映射。快樂編碼!
以上是如何在 C 中有效地迭代嵌套映射?的詳細內容。更多資訊請關注PHP中文網其他相關文章!