遍历stl map的一个诡异问题。。。

pplorins 2012-11-06 02:13:22
我的map是这样定义的:
map<string,struct,fnCmp>,struct是个结构体,fnCmp是个比较函数(插入元素时用的),准备将500个元素插入map,用的是operator[] 的方式插入元素。
插入完成后打印map->size();显示的是500,没错。 但遍历map的时候发现总是只遍历499次,总是少一次。

遍历方法
int nTest = 0;
for(map<>:iterator iter=map.begin(); iter!=map.end(); iter++)
{
....
nTest ++;
}
printf("%d\n",map->size()); //这里输出500
printf("%d\n",nTest); //这里输出499


发现只对某些key存在这个问题,不知道大家有没有遇到过这种问题?太诡异了。。。
...全文
240 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kaile 2012-11-06
  • 打赏
  • 举报
回复
map的插入一般不用 [] ,用insert 理由网上搜索一下, 每次检查返回值 ,有相同的key会插入失败
wq5710221 2012-11-06
  • 打赏
  • 举报
回复
你们都是牛B人物就我什么都不会
十八道胡同 2012-11-06
  • 打赏
  • 举报
回复
0到499,,不就是500吗
pplorins 2012-11-06
  • 打赏
  • 举报
回复
我好想知道是什么原因了 稍等,贴出来
zicheng_lin 2012-11-06
  • 打赏
  • 举报
回复
nTest 0 到 499 也是500个..
zicheng_lin 2012-11-06
  • 打赏
  • 举报
回复
size 是500
ri_aje 2012-11-06
  • 打赏
  • 举报
回复
上全代码。。
翅膀又硬了 2012-11-06
  • 打赏
  • 举报
回复
你贴一下完整代码。 这样问,别人没法试
User64 2012-11-06
  • 打赏
  • 举报
回复
没遇到过,楼主能不能说明下"某些key"是哪些?
pplorins 2012-11-06
  • 打赏
  • 举报
回复
引用 1 楼 tyh_123 的回复:
楼主学好c/c++基础才是关键,你这个问题很小白
我相信你要读懂我的意思的话,这个问题一点也不小白。
  • 打赏
  • 举报
回复
楼主学好c/c++基础才是关键,你这个问题很小白

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧