c++中multimap的iterator问题~

我想要在插入multimap之后回传那个关键字的iterator,可是一直报错说content不存在从xxx到xxx的适当转换,请问要怎么改?#include<strin... 我想要在插入multimap之后回传那个关键字的iterator,可是一直报错说content不存在从xxx到xxx的适当转换,请问要怎么改?

#include <string>
#include <map>
#include <iostream>
#include <algorithm>
#include <unordered_map>

using namespace std;

int main(){
multimap<string, int> content;
pair<multimap<string, int>::iterator, bool> result = content.insert({ "cool", 3 });
// 改成content.insert(make_pair (cool", 3)) 也不行
cout << result.first->first << endl;
}
展开
 我来答
TS_3
2014-06-12 · TA获得超过129个赞
知道小有建树答主
回答量:78
采纳率:100%
帮助的人:56.4万
展开全部
pair<multimap<string, int>::iterator, bool> result = content.insert({ "cool", 3 });

修改为:

multimap<string, int>::iterator iter = content.insert(multimap<string, int>::value_type("cool", 3));
cout << iter->first << endl;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
♂凡鸟♂fcb78ab
推荐于2016-02-20 · TA获得超过3711个赞
知道小有建树答主
回答量:586
采纳率:100%
帮助的人:612万
展开全部
//不知道你要的是不是这个结果,总之编译运行成功了
#include <string>
#include <map>
#include <iostream>
#include <algorithm>
#include <unordered_map>

using namespace std;

int main(){
multimap<string, int> content;
string s_str = "cool";//这里用了一个s_str变量接收"cool",不过跟直接使用没差别
pair<multimap<string, int>::iterator, bool> result =  make_pair(content.insert(make_pair (s_str, 3)), true);//你的错误主要是在这里,左边是一个<multimap::iterator,bool>那么右边必须格式一样,你原来只有multimap::iterator把bool量丢了肯定要报错。
cout << result.first->first << endl;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式