コンテナライブラリ

コンテナライブラリは、キュー、リスト、スタックのような一般的なデータ構造をプログラマが簡単に実装することを可能とする汎用のクラステンプレートとアルゴリズムのコレクションです。 コンテナはシーケンスコンテナ、連想コンテナ、非順序連想コンテナの3種類に分類され、それぞれ違った操作をサポートするよう設計されています。

コンテナは要素のために確保した記憶域空間を管理し、それらに直接またはイテレータ (ポインタに似た性質のオブジェクト) を通してアクセスするためのメンバ関数を提供します。

ほとんどのコンテナは少なくともいくつかのメンバ関数を共通して持っており、機能性を共有しています。 特定のアプリケーションに対してどのコンテナがベストかはその提供される機能性だけではなく、異なるワークロードに対する効率性にもよります。

 

 

 

 

シーケンスコンテナ

シーケンスコンテナはシーケンシャルアクセスが可能なデータ構造を実装しています。

array (c++11) 要素が隣接した静的な配列
(クラステンプレート)
vector 要素が隣接した動的な配列
(クラステンプレート)
deque 両端キュー
(クラステンプレート)
forward_list (c++11) 片方向連結リスト
(クラステンプレート)
list 双方向連結リスト
(クラステンプレート)

 

 

連想コンテナ

 

set 一意なキーによってソートされた、キーのコレクション
(クラステンプレート)
map 一意なキーによってソートされた、キー値ペアのコレクション
(クラステンプレート)
multiset キーによってソートされた、キーのコレクション
(クラステンプレート)
multimap キーによってソートされた、キー値ペアのコレクション
(クラステンプレート)

 

 

非順序連想コンテナ

 

unorderd_set (c++11) 一意なキーによってハッシュされた、キーのコレクション
(クラステンプレート)
unorderd_map (c++11) 一意なキーによってハッシュされた、キー値ペアのコレクション
(クラステンプレート)
unorderd_multiset (c++11) キーによってハッシュされた、キーのコレクション
(クラステンプレート)
unorderd_multimap (c++11) キーによってハッシュされた、キー値ペアのコレクション
(クラステンプレート)

 

コンテナアダプタ

 

stack スタック(LIFO データ構造)を提供するためにコンテナを適合させます
(クラステンプレート)
queue キュー(FIFO データ構造)を提供するためにコンテナを適合させます
(クラステンプレート)
priority_queue 優先度付きキューを提供するためにコンテナを適合させます
(クラステンプレート)

 

スパン

 

span (c++20) オブジェクトの隣接したシーケンスに対する非所有ビュー
(クラステンプレート)

 



参考

 


 

記載

2021-08-12 - 新規作成