ゲームをプログラミングするとき、私はすべてのゲームオブジェクトを初期化された固定サイズのstd :: vectorに格納することがありました。最近、私はゲームオブジェクトクラスの間でいくつかの継承の必要性を感じました。C++で異なる派生クラスのための効率的なコンテナ
私のクラスEnemyから派生した40のクラスがあると仮定しましょう。それらのクラスのオブジェクト/インスタンスをベクトルに格納したい場合は、ベクトルEnemy * rightとして格納するオプションしかありません。したがって、連続して割り当てられるのはポインタだけです。だから、逆参照が必要な時にはまだキャッシュミスが多いでしょうね。
派生クラスを連続して割り当てられたメモリに格納するというベストプラクティスの方法はありますか。
私は彼がクラスのインスタンスについて話していると思います。それは私には明らかでした。 – TinkerTenorSoftwareGuy
私はそれらのクラスのオブジェクトを意味しました。インスタンス。実行時に作成され割り当てられるもの。 – user3808217
ベクトルの内部の基底クラスへのポインタを使用するか、その適合度が良い場合は、スマートポインタのようなものを使用します。 – Klaus