使用 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中文网其他相关文章!