メモリ アクセスが予想よりもやや遅いのはなぜかと考えていたところ、Visual C++ の実装にはdeque実際に組み込みのインダイレクション層があり、メモリ ローカリティが破壊されていることがわかりました。
つまり、 の配列でT*はなく、 の配列を保持しているようですT。
この「機能」を持たない VC++ で使用できる別の実装はありますか、またはこの実装でそれを回避できる (可能性は低いと思いますが) 方法はありますか?
私は基本的vectorに、前面に O(1) プッシュ/ポップもある を探しています。
私はそれを自分で実装できると思いますが、allocators などを扱うのは面倒で、正しくするのに時間がかかるので、可能であれば以前に作成/テストされたものを使用したいと思います。