使用std::map 的基於範圍的for() 循環
在C 11 及更高版本中,基於範圍的for () 循環提供了一種迭代容器的便捷方法。當迭代向量等簡單容器時,每個元素都可以作為循環變數輕鬆存取。然而,對於諸如地圖之類的複雜容器,理解循環變數的類型變得至關重要。
考慮以下程式碼片段:
<code class="cpp">std::map<foo, bar> testing = { /*...blah...*/ }; for (auto abc : testing) { std::cout << abc << std::endl; std::cout << abc->first << std::endl; }</code>
在這種情況下,每個元素都是一個std: :map
對於C 17 及更高版本:
<code class="cpp">for (auto& [key, value] : myMap) { std::cout << key << " has value " << value << std::endl; }</code>
對於C 11 和C 14:
<code class="cpp">for (const auto& kv : myMap) { std::cout << kv.first << " has value " << kv.second << std::endl; }</code>
或者,您可以將kv 標記為const 以取得值的唯讀視圖。
以上是如何在 C 11 及更高版本中使用基於範圍的 for 迴圈來迭代 std::map?的詳細內容。更多資訊請關注PHP中文網其他相關文章!