调试代码的时候发现使用rebegin之后,第一个获取出来的是没初始化的随机数。
std::map<int,int> testMap;
testMap[1] = 2;
testMap[3] = 4;
testMap[5] = 6;
testMap[7] = 8;
testMap[9] = 0;
int i = 0;
for (std::map<int, int>::reverse_iterator iter = testMap.rbegin();
iter != testMap.rend();
iter ++)
{
i += iter->first;
}
在第一次循环中,可以看到是未初始化的数字。但是i获得的值是9,是正确的。
然后第二次循环,看到iter值是(9,0),而i的值是16,证明加上7了。
所以运算是正确的,初步估计是VS的调试对这种指针的支持不是很好。