被搞疯了,哪位大侠帮看看哪里不对了
遍历一个vector容器,老是越界。很简单不应该错,看log也不应该出现越界情况的。。。
CCLOG("Total %lu] exits:",getExitList().size());
CCLOG("begin : (%p)",getExitList().begin());
CCLOG("end : (%p)",getExitList().end());
for(std::vector<Point>::iterator it= getExitList().begin(); it != getExitList().end(); it++)
{
Point exitPoint = *it;
CCLOG("%p,(%d,%d)",it,(int)exitPoint.x,(int)exitPoint.y);
}
输出如下
Total exits:
begin : (0x7fe743ddfcf8)
end : (0x7fe743ddfd10)
0x7fe743ddfcf8,(4,9)
0x7fe743ddfd00,(7,8)
0x7fe743ddfd08,(8,8)
0x7fe743ddfd10,(0,0)
0x7fe743ddfd18,(0,0)
0x7fe743ddfd20,(-2147483648,-2147483648)
可以看到.end() 的指针就是0x7fe743ddfd10,log打印也看到确实到了迭代器也指向同一地址了
但 it != getExitList().end() 就是不退出,这是要闹哪样。。
哪位眼睛尖的帮看看?
我还是不作死了。先把 getExitList() 缓冲下再用了。多谢各位