【发布时间】:2011-09-04 06:08:46
【问题描述】:
尝试擦除列表的最后一个元素时出现此错误。我调试了代码,并能够找出导致它的原因和位置,这是我的代码:
for(Drop_List_t::iterator i = Drop_System.begin(); i != Drop_System.end() && !Drop_System_Disable; /**/)
{
if(Player->BoundingBox.Intersect(&(*i)->BoundingBox))
{
i = Drop_System.erase(i);
}
++i; //List iterator crashes here if last entry was deleted
}
我不知道我做错了什么...有什么建议吗?
【问题讨论】:
-
次要问题,但您可以将
&(*i)->BoundingBox简化为i->BoundingBox。粗略地说,迭代器就像指针。
标签: c++ list iterator increment