コンテナ

コンテナの種類

コンテナには次のものが(標準で)提供されている。

シーケンスコンテナ

データの並び位置に意味があるときに用いる。

vector

  • データレイアウトがCと互換である (連続したメモリ領域が確保される)
  • 添え字演算子[],at() で任意位置の要素へアクセスできる
  • push_front(),pop_front()なし
  • 任意位置の参照頻度が多い場合は,dequeよりもvectorを選択する

deque

  • 添え字演算子[],at() で任意位置の要素へアクセスできる
  • 両端への挿入と削除が多い場合(スタック,キュー)は,vectorよりもdequeを選択する

string

  • 文字列を扱う
  • 添え字演算子[],at() で任意位置の文字へアクセスできる
    1. 演算子,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

このWIKIを編集するにはパスワード入力が必要です

認証パスワード