わかりました、これはおそらくかなり基本的なことですが、私はこれまでやったことがありません。
私は s のベクトルを持っておりParticle
、それらが可視画面を離れたら、それらを消去したいと考えています。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"
. 私は何を間違っていますか?より良い方法はありますか?