簡単な質問ですが、答えは私にはわかりません。パフォーマンス上の理由から、パフォーマンスの観点から、次のシナリオでどのマップタイプ(または非マップタイプ?)のコンテナーを使用するのが最適ですか。
- キーは符号なし整数であり、
- 挿入は頻繁です、
- 読み取りアクセスはさらに頻繁でランダムアクセスですが、
- アイテムは昇順のキー値で挿入されます(最初に挿入されたアイテムにはキー0、次の1つのキー1など)。
- アイテムはランダムに削除されます(対応するアイテムが削除されたため、遅かれ早かれキーのリストに「穴」ができます)。取り外しは挿入とほぼ同じ頻度です。
std::map
キーの昇順と頻繁な削除は、検索ツリーの継続的なリバランスを意味しているように思われるため、使用することを躊躇します。これは、パフォーマンスの無駄に思えます。
言い換えれば、アイテムのキーが何であるか、そしてキーが挿入のために表示される順序さえも事前に知っているという事実からパフォーマンスを得ることができますか?(アイテムの総数はわかりませんが。)