2

ランタイムの観点から、大量のデータを背面から格納し、前面または背面から削除するための最も効率的なコンテナーは何ですか?

4

2 に答える 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 に答える