最近C言語とDirectX勉強し始めてSTG作ってて
敵を出す処理がいまひとつ謎なんですが
ステージ開始時にそのステージで出す敵の種類や出すフレームなどのデータを読み込みこんだ後

for(int i=0;i<敵配列の最大数;i++)
{
if(現在フレーム==enemy[i].出現フレーム)
{
敵生成();
}
}

みたいにして敵を出現させているんですかね?
1フレームに出す出来の数なんてたかが知れているから1つの面の敵の数が1000オーバーとかになってくると
かなりforループが無駄な気がするんですが他に効率が良さそうな方法とかありますか?
アケシューとかかなりの数の敵が出てるけどどうしてるんだろう