入力をすばやく行う方法を見つけようとしていますが、そのような目的で STL を使用すると時間がかかる可能性があることを知りました。
キーボード入力を取得するたびに起動するコールバックがあります。でオブジェクトを作成します(int _key, int _state, int _life)
このコールバックを受け取るたびにpush_back
、std::vector へのオブジェクトを取得します。
フレームごとに、このベクトルの上部をチェックし、「デッド」入力を削除します。
ベクトルは、その時点で有効な入力に対してポーリングできます。これは、頻繁に検索されることを意味します。
最適化:
-すべてのメモリは連続している必要があるため、動的割り当てにはリンク リストの方が適していますが、STL のベクトルを使用する必要がありますか? 私は常に上に追加し、下から削除しているので、どのデータ構造体を使用すればよいですか?
-コールバックから新しい入力を継続的に受け取るバッファ(2番目のベクトル)を用意し、各フレームでそのベクトルからアクティブな入力ベクトルの先頭にデータをコピーすることを考えていました。アクティブなベクトルがポーリングされるため、ループ中に追加される時間を無駄にしないため、パフォーマンスが向上しますか?
基本的に、このベクトルから可能な限り多くのパフォーマンスを絞り出そうとしていますが、助けが必要です。