关于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呀~ 展开
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呀~ 展开
若以下回答无法解决问题,邀请你更新回答
展开全部
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));
}
{
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));
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询