……素朴に考えると範囲for文の中で削除してもよしなにやってくれそうな気はする

for(auto blt: enblts){
if( blt.isDead() ) enblts.erase(blt);
}

しかしこれはC++でもJava(remove)でも願い通りには動かない
でも弾幕ゲームをやってる初心者の直感では正しい


としたらこれから先の時代はフィルタで書いた方がいいのかもしれない

erase_if( enblts, [](Bullet blt){return blt.isDead();} );//c++, vector

enblts.remove_if( [](Bullet blt){return blt.isDead();} );//c++, list

enblts.removeIf( blt -> blt.isDead() );//java

enblts = filter( lambda blt: blt.isAlive(), enblts )#python

@enblts = grep{ $_->isAlive() } @enblts;#perl