ランタイムの観点から、大量のデータを背面から格納し、前面または背面から削除するための最も効率的なコンテナーは何ですか?
2 に答える
13
Astd::deque
またはダブル エンド キュー。
とは異なり、std::vector
連続したメモリに格納される保証はありません。ただし、キャッシュがますます重要になり、一般的な複雑さのステートメントがそれほど重要ではないため、特定のニーズをベンチマークする必要があります。ただし、この場合は adeque
から始めます。
于 2013-02-01T08:05:31.223 に答える
0
それは、実装、コンテナのサイズ、関連するタイプ、およびおそらく他のものにも依存するため、唯一の本当の答えは測定することです. std::deque
これらのタイプの操作用に設計されており、型をコピーするのにコストがかかる非常に大きなコンテナーの場合、間違いなく最速ですが、私が測定した 1 回 (最大 8 個のchar
コンテナーで — 小型でコピーが安価)、std::vector beat
std: :deque` は間違いありません。
于 2013-02-01T08:57:55.233 に答える