嘗試擦除列表的最後一個元素時出現此錯誤。我調試的代碼,並能夠找出是什麼原因導致它在哪裏,這裏是我的代碼:C++:列表迭代器不可增量
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'。粗略地說,迭代器就像指針一樣。 – 2011-05-29 10:07:54