关于C++中rebegin显示错误的问题

调试代码的时候发现使用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的调试对这种指针的支持不是很好。


posted @ 2016-11-07 10:52  肥宝游戏  阅读(482)  评论(0)    收藏  举报