名前がすべてを物語っていますが、詳しく説明すると、タイムスタンプ付きのベクトルのリストがあります。それらはほとんどソートされていますが、順不同の値がいくつかあります。それらを順番に出力したいのですが、ベクトルはストリーミングで送られてくるので、タイムリーに結果を出力したいのでバッファを大きくしたくありません。
そのため、N 個のベクトルを含む一種の「先読み」リストを保持したいと考えています。新しいベクトルを読み込むと、それをリストに挿入し、リストの一番上から最も古いベクトルをポップして、リストが一定の N ベクトルの長さになるようにします。
リストに挿入するときは、ベクトルをソートしてリスト内の正しい位置に追加する必要があります。これが最も効率的な方法だと思います。
十分な効率が必要ですが、あまりにも長い実装とテストを無駄にしたくありません。したがって、私は簡単な解決策 (既存の C++ 構造体が存在する場合は再利用するなど) と、顕著な速度向上を実現できる場合の実装が難しい解決策の両方に関心があります。私は標準の C++ に固執したいと思いますが、必要なことを正確に実行するブーストまたは同様のライブラリがあれば、念のためそれについて聞きたいです。
ありがとうございました。
編集:すべての提案に感謝します。ただし、タイムスタンプが一意ではないことを言い忘れました。タイムスタンプには秒の精度しかないため、実際には、同じタイムスタンプを持つ複数のベクトルを取得する可能性が非常に高くなります。この場合、必要ではありませんが、順序を維持したいと思います。