C++11 使用唯一类型键将地图插入其他地图 你好,我是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_流程中的所有关键字,剩余的所有关键字都可以相同C++11 使用唯一类型键将地图插入其他地图 你好,我是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 },c++11,C++11,现在我想定义一些类似的东西,只是我的关键字应该与流程一起添加,并且对于obj_流程中的所有关键字,剩余的所有关键字都可以相同 objmap["process_"+"today"] = obj_process["today"]; 我可以用一个简单的代码来代替定义所有的10吗?因为在这里我举了一个10的例子,但是我在map的键中有200组不同的字符串你能在map上迭代一下吗 for(自动和输入:obj_过程) objmap[“进程”+i.first]=i.second我想这就是您需要的: map&
objmap["process_"+"today"] = obj_process["today"];
我可以用一个简单的代码来代替定义所有的10吗?因为在这里我举了一个10的例子,但是我在map的键中有200组不同的字符串你能在map上迭代一下吗
for(自动和输入:obj_过程)
objmap[“进程”+i.first]=i.second代码>我想这就是您需要的:
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;
}
map-objmap;
映射对象过程;
//
//填写obj_程序的内容
//
//使用计算密钥将对象从obj_进程复制到objmap。
用于(自动和项目:obj_流程)
{
objmap[std::string(“进程”)+item.first]=item.second;
}
这行不通,你没有连接字符串,你在添加指针和数字。我很确定这是std::string(“process”)+i.first
或“process”+to_string(i.first)
我很确定你应该在任何评论之前询问编译器。新的std::string
是从const char*
隐式构建的to_string(i.first)
对我来说没有任何意义。我的缺点是,我一直认为i.first是整数,很抱歉,如果你正在使用(引号),我只想通知“process+”它以字符串的形式告诉类型,谢谢idea@SakethPothukuchi,是的,我意识到了这一点。我更喜欢使用显式类型作为编码样式。这样的代码对我来说更容易理解。
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;
}