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 中国語 Web サイトの他の関連記事を参照してください。