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