c++ map 容器的的first和second为什么会失效?

这段代码之前我并没有对容器进行erase等操作啊,而且我在for中又定向到了容器的begin,迭代器为什么会失效呢for(map<int,int>::iteratorit... 这段代码之前我并没有对容器进行erase等操作啊,而且我在for中又定向到了容器的begin,迭代器为什么会失效呢for(map<int,int>::iterator it = mmp.begin(); it != mmp.end(); it++) cout << *it.first << ' ' << *it.second << endl; 展开
 我来答
硪丨暧恋
2017-08-03 · TA获得超过8979个赞
知道大有可为答主
回答量:5336
采纳率:93%
帮助的人:2147万
展开全部
map容器取成员不是这样用的
给你个例子:
map<string, int> m;
m["one"] = 1;
map<string, int>::iterator p = m.begin();
p->first; // 这个是 string 值是 "one"
p->second; //这个是 int 值是 1
追问

之前我做了个测试,发现如果我用c++11的for(const auto &w : word_count)就没问题,但是我用for(map<string,size_t>::iterator w = count.begin(); w != count.end(); w++) 就会报错,我定义的map<string,size_t> count;

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式