|
そこで、まず標準で用意されているコンテナを紹介します。
各コンテナは、代入演算子や比較演算子などが定義されていますので、 同じコンテナを複数コピーしたり、比較したりすることもできます。この場合、 要素すべてがコピーされたり、比較したりしますので、時間を要する処理になります。
コンテナ 特 徴 ヘッダファイル vector 動的な配列 実行時に配列の大きさを変えることができる配列です。
普通の配列のようにランダムにデータにアクセスすることが多い場合に有効です。
データ数(要素数)が変化する場合(追加したり、削除したりする場合)には、その度に新しいメモリーが 割り当てられるため効率が悪くなります。すなわち、要素数の変化が多い場合は不向きです。vector list 双方向リスト 双方向にアクセス可能な線形リストです
最初から最後へ、最後から最初へ順番(シーケンシャル)に参照していく場合に有効です。
ランダムアクセスには不向きです。
データの追加、削除を頻繁に行うデータ構造に有効です。list queue キュー 先入れ先出し(FIFO)のキューです
コンテナの終端にデータを追加し、コンテナの先端からデータを取得するのに適したコンテナですqueue deque 両端キュー コンテナの両端からアクセスできるキューです
コンテナの両端へのデータ追加、両端からのデータ取得に適したキューですdeque priority_queue 優先順位付きキュー 優先順位を管理する機能のついたキューです
queue stack スタック 先入れ後出し(FILO)のスタックです
コンテナの終端にデータを追加し、コンテナの終端からデータを取得するのに適したコンテナですstack map マップ 表を作るのに適したコンテナです
キーと値という2つのペアを対応表として格納するのに適したコンテナです
キーの重複は許されません。map multimap マルチマップ 表を作るのに適したコンテナです
mapはキーが重複してはいけないのに対し、同じキーで複数のデータを登録できる表ですmap set セット ソートしながら要素を追加できるコンテナです。
データの重複は許されません。set multiset マルチセット データの重複が許されるセットです
set bitset ビットセット true / falseを格納するためのコンテナです
set
また、コンテナにクラスのポインタを格納する場合には注意が必要です。 例えば、コンテナをコピーした場合、ポインタがコピーされますので、1つの コンテナ内に格納されているポインタを削除(delete)すれば、もう1つのコンテナ内に 格納されている同じポインタを使って何かすることができなくなるからです。