关于c++容器 map的问题

假设我现在有两个map分别为map1和map2map1已经填充好了现在我想将map1的first放到map2的second中然后把map1的second放到map2的fi... 假设我现在有两个map 分别为map1和map2
map1已经填充好了 现在我想将map1的first放到map2的second中
然后把map1的second放到map2的first中
请问一下怎么实现~

附上我的部分代码~
报错了~

ap<string, int> mapDict;
multimap<int, string> mapOut;
map<string, int>::iterator map_it;
multimap<int, string>::iterator map_it_2;
map_it = mapDict.begin();
for (map_it_2 = mapOut.begin(); map_it_2 != mapOut.end(); ++map_it_2)
{
map_it_2->first = map_it->second;
map_it_2->second = map_it->first;
++map_it;
但是现在编译不通过 只报了一个错误
88 20 C:\Users\lrz\Desktop\1.1.cpp [Error] assignment of read-only member 'std::pair<const int, std::basic_string<char> >::first'
我看起来好像意思是说 我map的pair里面的元素是const的所以不能做写操作 可是我声明的时候并没有写const呀~
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
松甜恬0Je4ba
2014-03-26 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3391万
展开全部
for (map_it_2 = mapOut.begin(); map_it_2 != mapOut.end(); ++map_it_2)
{
map_it_2->first = map_it->second;
map_it_2->second = map_it->first;
++map_it;

这里有点问题啊,你是想将mapDict的东西放在mapout中,为什么循环mapOUT呢??mapout一开始不应该是空吗??不是应该循环mapDICT吗??

for(map_it = mapDict.begin(); map_it != mapDict.end(); ++map_it)
{
mapOut.insert(make_pair(map_ite->second,map_ite->first));
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式