遍历stl map的一个诡异问题。。。
我的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存在这个问题,不知道大家有没有遇到过这种问题?太诡异了。。。