構造設計スレに書いたんだけど、あっという間に閉鎖スレになっちゃったのでこっちで再送


すいません、STGを作るの初めてなんで疑似タスクで質問させてください。
疑似タスクの仕組みとしては LogicianLoad を参考にさせてもらっています。

----------------
Q: 1フレームの中でタスクの優先順位を何回も変更する場合ってありますか?

優先順位を変更するならば、タスクをリストに登録する際どうやってその位置を見つけますか?
リストの先頭からざーっとなめてるんですか?
----------------

とりあえず、私としては以下のようにしてるんですが、よくないところとかあったら教えてください。

----------------
固定長ワークの配列を作る。要素数 256個とか。

タスクは、ワークへのポインタを持つ。
いくつものタスクがおなじワークへの参照をすることがあるので、ワークには参照カウンタを持たせる。

タスクのリストへの登録は map<優先度, list<タスク *> > な優先度マップを用意して、

優先度マップ[優先度].push_back(&タスク);

としてリストに登録。タスクの優先度変化とか、チェンジタスクとかは同じワークを参照するタスクを
つくって対応。状況に応じて自殺。
----------------