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