As einpoklum belirtilen verdikleri yanıta beri, C ++ 17 de kullanabilirsiniz bildirimleri bağlayıcı yapılandırılmış . Harita üzerinde rahat bir şekilde yineleme için tam bir çözüm sağlayarak bunu genişletmek istiyorum:
int main() {
std::map<std::string, std::map<std::string, std::string>> m {
{"name1", {{"value1", "data1"}, {"value2", "data2"}}},
{"name2", {{"value1", "data1"}, {"value2", "data2"}}},
{"name3", {{"value1", "data1"}, {"value2", "data2"}}}
};
for (const auto& [k1, v1] : m)
for (const auto& [k2, v2] : v1)
std::cout << "m[" << k1 << "][" << k2 << "]=" << v2 << std::endl;
return 0;
}
Not 1: Haritayı doldurmak için bir başlatıcı listesi kullandım (bu bir C ++ 11 özelliği). Bu bazen sabit başlatmaları kompakt tutmak için kullanışlı olabilir.
Not 2: Haritayı m
döngüler içinde değiştirmek istiyorsanız, haritayı döngüler içinde kaldırmanız gerekir.const
anahtar kelimeleri .
Coliru Kodu