要将两个STL映射合并为一个,我们需要创建一个新的映射,其键是第一个映射的键,值是第二个映射。以下是如何实现这一点的步骤和示例代码:
map<char, map<string, int>>
以下是一个示例代码,展示了如何合并两个映射:
#include <iostream>
#include <map>
#include <string>
int main() {
// 第一个映射:map<char, string>
std::map<char, std::string> map1 = {
{'a', "apple"},
{'b', "banana"},
{'c', "cherry"}
};
// 第二个映射:map<string, int>
std::map<std::string, int> map2 = {
{"apple", 1},
{"banana", 2},
{"cherry", 3}
};
// 创建新的嵌套映射
std::map<char, std::map<std::string, int>> mergedMap;
// 合并两个映射
for (const auto& pair : map1) {
char key = pair.first;
const std::string& value = pair.second;
if (map2.find(value) != map2.end()) {
mergedMap[key][value] = map2[value];
}
}
// 输出合并后的映射
for (const auto& outerPair : mergedMap) {
std::cout << "Key: " << outerPair.first << std::endl;
for (const auto& innerPair : outerPair.second) {
std::cout << " SubKey: " << innerPair.first << ", Value: " << innerPair.second << std::endl;
}
}
return 0;
}
map1
和map2
。mergedMap
是我们最终要创建的嵌套映射。map1
,对于每个键值对,检查map2
中是否存在对应的值。如果存在,则将这一对键值对添加到mergedMap
中。map2
中不存在map1
中的某个值,可以选择忽略该键或设置默认值。通过这种方式,你可以有效地将两个STL映射合并为一个嵌套映射,适用于多种复杂的数据组织需求。
领取专属 10元无门槛券
手把手带您无忧上云