ホームページ >バックエンド開発 >C++ >イテレータを使用してネストされた C マップ内の値に効率的にアクセスするにはどうすればよいですか?

イテレータを使用してネストされた C マップ内の値に効率的にアクセスするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-02 22:09:15300ブラウズ

How Do I Efficiently Access Values in a Nested C   Map Using Iterators?

反復子を使用した多層 C マップの値へのアクセス

マップの C マップを反復処理します。内部マップにはキーが含まれます。値のペアは、反復子を使用して効率的に実現できます。その方法は次のとおりです。

次のようにマップを宣言します。

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

外側のマップを反復処理するには、次のコードを使用します。構文:

for (auto& outer_entry : m) {
  std::string outer_key = outer_entry.first;
  std::map<std::string, std::string>& inner_map = outer_entry.second;

  // Iterate through the inner map using a nested loop
  for (auto& inner_entry : inner_map) {
    std::string inner_key = inner_entry.first;
    std::string inner_value = inner_entry.second;

    // Access the inner values here
  }
}

例:

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 (auto& outer_entry : m) {
  std::cout << "Outer Key: " << outer_entry.first << std::endl;
  for (auto& inner_entry : outer_entry.second) {
    std::cout << "Inner Key: " << inner_entry.first << " - Value: " << inner_entry.second << std::endl;
  }
  std::cout << std::endl;
}

出力:

Outer Key: name1
Inner Key: value1 - Value: data1
Inner Key: value2 - Value: data2

Outer Key: name2
Inner Key: value1 - Value: data1
Inner Key: value2 - Value: data2

Outer Key: name3
Inner Key: value1 - Value: data1
Inner Key: value2 - Value: data2

以上がイテレータを使用してネストされた C マップ内の値に効率的にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。