名称 | 概要・特長 | 必要なヘッダ | 備考 |
vector | ベクトル(可変長配列) 要素数を自由に変更できる ランダムアクセスが高速でメモリ効率が良い |
#include <vector> | 詳細はリンク先を参照 |
array | 通常の固定長配列に各種機能(ヘルパー)を追加したもの | #include <array> | C++11以降 |
名称 | 概要・特長 | 必要なヘッダ | 備考 |
list | 双方向リスト 前後の要素への参照(ポインタ)を保持し、順に辿ることができる 要素の追加・削除が高速だが、ランダムアクセスは遅い |
#include <list> | |
forward_list | 単方向リスト 後の要素への参照(ポインタ)を保持する list と異なり、前へは辿れない |
#include <forward_list> | C++11以降 |
名称 | 概要・特長 | 必要なヘッダ | 備考 |
map | 要素はキーの値の大小に従ってソートされる | #include <map> | |
multimap | キーの重複が認められるmap | ||
unordered_map | 要素がソートされない map map よりも処理が高速でメモリ効率が良い |
#include <unordered_map> | C++11以降 |
unordered_multimap | 要素がソートされない multimap multimap よりも処理が高速でメモリ効率が良い |
名称 | 概要・特長 | 必要なヘッダ | 備考 |
set | 要素は昇順にソートされる | #include <set> | |
multiset | 値の重複が許される set | ||
unordered_set | 要素がソートされない set set よりも処理が高速でメモリ効率が良い |
#include <unordered_set> | C++11以降 |
unordered_multiset | 要素がソートされない multiset multiset よりも処理が高速でメモリ効率が良い |
名称 | 概要・特長 | 必要なヘッダ | 備考 |
stack | スタック(LIFO) 追加した要素を新しい順に取り出す プッシュ・ポップが高速 |
#include <stack> | リンク先も併せて参照 |
queue | キュー(FIFO) 追加した要素を旧い順に取り出す エンキュー・デキューが高速 |
#include <queue> | |
priority_queue | 優先度付きキュー 要素を追加順ではなく、優先度順で管理する 値は優先度の大きいものから取り出される(デフォルトは降順) |
||
deque | 両端キュー(Double-Ended QUEue) 先頭・末尾への要素の追加・削除を高速に行える |
#include <deque> | |
bitset | 固定長のビット列 フラグとして使用可 |
#include <bitset> | 詳細はリンク先を参照 |