C 11 以降で範囲ベースの for ループを使用して std::map を反復するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-27 17:34:31
オリジナル
325 人が閲覧しました

How do I iterate through a std::map using range-based for loops in C  11 and later?

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::value_type、これは本質的に std::pair です。これは次のことを意味します:

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!