C++代码中map的find函数问题

#include<iostream>#include<string.h>#include<map>structtest{std::map<std::string,int>... #include <iostream>
#include <string.h>
#include <map>
struct test{
std::map<std::string, int> mapx;
test(){
for (int i=0; i<10; i++){
mapx.insert(std::make_pair("xxx", i));
}
}
};
int main(){
std::map<int, std::string>::iterator itr;
test x;
itr=x.mapx.find(std::string("xxx"));
std::cout<<itr->second<<std::endl;
return 0;
}
为什么会报错? 报错信息如下
test.cpp:15: error: no match for 'operator=' in 'itr = ((std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<const std::string, int> > >*)(&x))->std::map<_Key, _Tp, _Compare, _Alloc>::find [with _Key = std::string, _Tp = int, _Compare = std::less<std::string>, _Alloc = std::allocator<std::pair<const std::string, int> >](((const std::string&)((const std::string*)(&string(((const char*)"xxx"), ((const std::allocator<char>&)((const std::allocator<char>*)(&allocator<char>()))))))))'
/usr/lib/gcc/x86_64-redhat-linux/3.4.5/../../../../include/c++/3.4.5/bits/stl_tree.h:152: note: candidates are: std::_Rb_tree_iterator<std::pair<const int, std::string> >& std::_Rb_tree_iterator<std::pair<const int, std::string> >::operator=(const std::_Rb_tree_iterator<std::pair<const int, std::string> >&)
展开
 我来答
jiangsanhuo
2014-08-18 · TA获得超过169个赞
知道小有建树答主
回答量:291
采纳率:81%
帮助的人:174万
展开全部
std::map<std::string, int> mapx; std::map<int, std::string>::iterator itr;
明显不一致嘛
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式