ビャーネ・ストロヴルプによるGoingNative'12トークの録音を見たところです。そして、私は少し混乱しています。
この講演では、特にvector
vsの質問について説明し、コンパイラーはコンパクトな構造のように多くのことを最適化できるため、多くの場合、途中で集中的に挿入および削除しても高速でlist
あると示唆しています。vector
そして結論は(私が理解しているように)次のとおりです。最初に使用vector
し、後で何か他のものが必要かどうかを考えます。それは合理的に聞こえますが、最初の観察を考慮に入れると、どのような基準を考慮に入れる必要がありますか?集中的に挿入/削除する場合は、リストを使用することを常に考えていました。ここのいくつかのトピックでも同様のことが示唆されています。見る
std::vector対std::list対std::slistの相対的なパフォーマンス?
と
そして今、Stroustrupによれば、私は間違っていました。
もちろん、私はいくつかのテストを書いて、それぞれの特定の状況で何を使用するかを理解しようとすることができますが、理論的な方法はありますか?