好的,这可能是非常基本的,但我以前从未做过。
我有一个Particle
s 的向量,当它们离开可见屏幕时,我想擦除它们。我查找了擦除删除习语,但我不知道如何使它工作,因为我还需要删除Particle
实例。我尝试了向后迭代,但没有成功:
for ( std::vector<Particle*>::reverse_iterator rit = particles.rbegin(); rit != particles.rend(); ++rit )
{
if ( IsOffScreen((*rit)->pos) )
{
delete (*rit.base());
particles.erase(rit.base());
}
}
在运行时崩溃时,Visual Studio 说"iterator cannot be decremented"
. 我究竟做错了什么?有没有更好的办法?