大家好我不熟悉C ++中的地图我有一个关于将特定类型地图复制到另一个同类地图的问题,详细信息如下所示 我最初声明了这样的地图
map<string,int> objmap,obj_porcess ;
for(int i = 0; i < 10]; i++) {
obj_process[to_string(i)]=i+10//some processing the to_string is just in case but i have strings with names for all 10 values
}
像
obj_process["today"]=1;
obj_process["yesterday"]=-1;
obj_process["tommorow"]=2;
现在我想定义一些这样的东西,只是我的关键词应该添加进程,剩下的所有键都可以与obj_process的所有键相同
objmap["process_"+"today"] = obj_process["today"];
而不是定义所有10我可以有一个简单的代码原因在这里我拿了一个例子10但我在地图的键中有200套不同的字符串
答案 0 :(得分:2)
我认为这就是你所需要的:
map<string,int> objmap;
map<string,int> obj_porcess;
//
// Fill up the contents of obj_porcess
//
// Copy objects from obj_porcess to objmap using a computed key.
for ( auto& item : obj_process )
{
objmap[std::string("process_") + item.first] = item.second;
}
答案 1 :(得分:1)
你可以迭代地图吗?
for(auto &i : obj_process)
objmap["process" + i.first] = i.second;