如何将map<1,map<"sd",123>> 、map<1,map<"zd",234>>、map<1,map<"dl",345>>、map<2,map<"aa",345>>合并为一个map?
时间: 2023-08-16 14:04:35 浏览: 98
可以使用循环遍历每个map,将其中的键值对逐一插入到目标map中。具体实现代码如下:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, std::map<std::string, int>> map1 = {{1, {{"sd", 123}}}, {2, {{"aa", 345}}}};
std::map<int, std::map<std::string, int>> map2 = {{1, {{"zd", 234}}}, {2, {{"bb", 456}}}};
std::map<int, std::map<std::string, int>> map3 = {{1, {{"dl", 345}}}, {2, {{"cc", 567}}}};
std::map<int, std::map<std::string, int>> merged_map;
for (const auto& map : {map1, map2, map3}) {
for (const auto& [key, value] : map) {
for (const auto& [inner_key, inner_value] : value) {
merged_map[key][inner_key] = inner_value;
}
}
}
for (const auto& [key, value] : merged_map) {
std::cout << key << ": {";
for (const auto& [inner_key, inner_value] : value) {
std::cout << inner_key << ": " << inner_value << ", ";
}
std::cout << "}" << std::endl;
}
return 0;
}
```
输出结果为:
```
1: {dl: 345, sd: 123, zd: 234, }
2: {aa: 345, bb: 456, cc: 567, }
```
其中,merged_map 为合并后的map,循环中的 map1、map2、map3 为待合并的三个map。
阅读全文