ホームページ > バックエンド開発 > C++ > C でネストされたマップを反復するにはどうすればよいですか?

C でネストされたマップを反復するにはどうすればよいですか?

DDD
リリース: 2024-12-04 20:23:12
オリジナル
222 人が閲覧しました

How Can I Iterate Over Nested Maps in C  ?

C でのネストされたマップの反復

C でのマップのマップのループは、ネストされた for ループを使用して実行できます。次のコンテナを考えてみましょう:

std::map<std::string, std::map<std::string, std::string>> m;

// Example data
m["name1"]["value1"] = "data1";
m["name1"]["value2"] = "data2";
m["name2"]["value1"] = "data1";
m["name2"]["value2"] = "data2";
m["name3"]["value1"] = "data1";
m["name3"]["value2"] = "data2";
ログイン後にコピー

ネストされた For ループ:

このマップを反復するには、ネストされた for ループを使用します:

for (auto const &ent1 : m) {
  // ent1.first is the outer key
  for (auto const &ent2 : ent1.second) {
    // ent2.first is the inner key
    // ent2.second is the value
  }
}
ログイン後にコピー

このアプローチにより、ネストされた各要素の外部キー、内部キー、および値にアクセスできるようになります。 map.

C 11 の機能強化:

C 11 では、範囲ベースの for ループを使用して上記のコードを簡素化できます:

for (auto const &[outer_key, inner_map] : m) {
  for (auto const &[inner_key, inner_value] : inner_map) {
    // Access outer_key, inner_key, and inner_value directly
  }
}
ログイン後にコピー

C 17 構造化バインディング:

C 17 では、構造化バインディングによって構文がさらに簡素化されます:

for (auto const &[outer_key, inner_map] : m) {
  for (auto const &[inner_key, inner_value] : inner_map) {
    // Access outer_key, inner_key, and inner_value without need for variables
  }
}
ログイン後にコピー

これらのメソッドを使用すると、ネストされたマップを効率的にループし、マップに含まれるデータにアクセスできます。 .

以上がC でネストされたマップを反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート