Notice : 内容無保証。禁無断転載。リンク自由。

STL - Standard Template Library

コンテナ選択のポイント : パフォーマンス

低速 ← 対数 線形 償却 定数 → 高速

(注) 償却 : 償却定数時間。 たまに長い時間を要することがあるが、多くの場合は定数時間で処理が終わるため、 平均してみると処理にかかる時間を定数だとみなせるもの。
ex. vector の 末尾への追加。 キャパシティを超える場合のみ線形時間かかるが、通常は定数時間で処理が終わる。

コンテナ ヘッダ カテゴリ 先頭 末尾 中間 参照 挿入 削除 備考
vector <vector> シーケンス 線形 償却 線形 定数 参照はdequeより高速。末尾での挿入/削除、ランダムアクセスがメインならこれ。
priority_queue <queue> アダプタ (vector) 線形 償却 線形 定数
deque <deque> シーケンス 定数 定数 線形 定数 先頭での挿入/削除が多いならこれ。
queue <queue> アダプタ (deque) 定数 定数 線形 定数
stack <stack> アダプタ (deque) 定数 定数 線形 定数
list <list> シーケンス 定数 定数 定数 - ランダムアクセスの必要が無く、中間での挿入/削除が多いならこれ。
要素毎に前後2要素を指すポインタが必要なため、メモリ的には不利。
map <map> 連想 (償却) 対数 対数 連想コンテナ間のパフォーマンスの違いは少ない。用途で選択すること。
multimap <map> 連想 (償却) 対数 対数
set <set> 連想 (償却) 対数 対数
multiset <set> 連想 (償却) 対数 対数