このSO投稿を確認する必要があると思います。どのシナリオで特定のSTLコンテナを使用しますか?小さいサイズの場合、ベクトルは、何をしようとしているかに関係なく、ほとんどのシナリオに適合します。
チャートはガイドですが、コンテナが定期的にアクセスされるという事実はコンテナの選択に影響しません。コンテナのサイズを気にしない限り、intを格納しているという事実は重要ではありません。リストコンテナまたはマップはあなたにとって重要ですか?
並べ替えはマップによって自動的に行われますが、コンテナのサイズがメモリに収まるほど小さい場合、ベクトルとリストの並べ替えは非常に高速になります。
データの挿入は、コンテナ内の任意の場所のリストとマップ用に最適化されています。マップの場合、それ自体が並べ替えられるという利点がありますが、サイズが十分に小さい場合は、新しいエントリを使用して新しいベクトルを作成するのは非常に高速です。
また、ハッシュマップを検討することもできます。それでも、コードのプロファイリングを行うのが最善です。最適なものは使用状況によって異なり、実際に測定してプロファイリングする必要があります。
また、STL<map>
が十分に細かいバランスである<set>
と判断し、それらのコンテナを使用することもできます。これらのコンテナは、挿入と削除で自動的に並べ替えられ、検索が高速ですが、各エントリのポインタを維持するオーバーヘッドがあり、サイズが大きくなります。ベクトルと比較して使用されるメモリ。これを気にしない場合は、これらのコンテナを検討できます。
それでも重要な場合は、各コンテナーのパフォーマンスをテストおよびプロファイリングして比較すると、コードが想定に対してどのように実行されるかに驚かれることでしょう。