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;
} 展开
#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;
} 展开
2个回答
展开全部
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;
修改为:
multimap<string, int>::iterator iter = content.insert(multimap<string, int>::value_type("cool", 3));
cout << iter->first << endl;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//不知道你要的是不是这个结果,总之编译运行成功了
#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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询