コンテナ
コンテナの種類
コンテナには次のものが(標準で)提供されている。
シーケンスコンテナ
データの並び位置に意味があるときに用いる。
vector
- データレイアウトがCと互換である (連続したメモリ領域が確保される)
- 添え字演算子[],at() で任意位置の要素へアクセスできる
- push_front(),pop_front()なし
- 任意位置の参照頻度が多い場合は,dequeよりもvectorを選択する
deque
- 添え字演算子[],at() で任意位置の要素へアクセスできる
- 両端への挿入と削除が多い場合(スタック,キュー)は,vectorよりもdequeを選択する
string
- 文字列を扱う
- 添え字演算子[],at() で任意位置の文字へアクセスできる
- 演算子,append()で結合
- copy on write で実装されることが多い
list
- 双方向リンクリスト
- 中間位置への追加,削除に有利 : O(1)
- 中間位置の参照は不利 : O(n)
- Random Iteratorなし
- メンバ関数 remove(),remove_if(),unique(),sort(),merge(),reverse() を具える。
連想コンテナ
2分木で構成される。データは常にソートされた状態である。
count(),find(),lower_bound(),upper_bound(),equal_range()をメンバー関数で具える。
set
- keyと値を一緒に扱う
map
- keyと値を別に扱う
- keyと値はpair<>で持つ
- 添え字演算子[]でkeyを指定 keyが存在しないときは要素追加となる
multiset
- 重複したkeyを格納できる set である
multimap
- 重複したkeyを格納できる map である
- 最終更新:2009-04-29 23:20:56