Articles
GeeksforGeeks
On 10月 28, 2021 by admin標準テンプレートライブラリ(STL)は、リスト、スタック、配列などの一般的なプログラミングデータ構造と関数を提供するC++テンプレートクラスのセットである。 コンテナクラス、アルゴリズム、イテレータのライブラリである。 一般化されたライブラリであるため、その構成要素はパラメータ化されている。 STL を使用するには、テンプレート クラスの知識が必要です。
STL には 4 つのコンポーネントがあります
- アルゴリズム
- コンテナ
- 関数
- イテレータ
Algorithms
Header algorithm は要素の範囲に使用するように特別設計した関数コレクションを定義します。それらはコンテナ上で動作し、コンテナの内容に対する様々な操作の手段を提供する。
- アルゴリズム
- ソート
- 検索
- 重要なSTLアルゴリズム
- 役に立つ配列アルゴリズム
- パーティション操作
- Numeric
- valarray class
コンテナ
コンテナクラスはオブジェクトとデータを格納します。 合計で7つの標準的な「ファーストクラス」コンテナクラスと3つのコンテナアダプタクラスがあり、これらのコンテナやコンテナアダプタへのアクセスを提供するヘッダーファイルは7つだけです。
- シーケンスコンテナ:順次アクセスできるデータ構造を実装しています。
- vector
- list
- deque
- array
- forward_list( C++11 で導入)
- Container Adaptor : シーケンシャル コンテナに対して別のインターフェイスを提供するものです。
- queue
- priority_queue
- stack
- Associative Containers : 高速検索 (O(log n) complexity) できるソート データ構造を実装しています。
- set
- multiset
- map
- multimap
- Unordered Associative Containers :
- unordered_set (C++11 で導入)
- unordered_multiset (C++11 で導入)
- unordered_map (C++11 で導入)
- unordered_multimap (C++11 で導入)
を実装することで、迅速に検索できる非順序データ構造体を実現します。Adaptive ContainersとUnordered Containersのフローチャート
Sequence conatinersと ordered containersのフローチャート
関数
STLには関数呼び出し演算子をオーバーロードするクラスがある。 このようなクラスのインスタンスは関数オブジェクトまたはファンクタと呼ばれます。 ファンクタは、渡されるパラメータの助けを借りて、関連する関数の動作をカスタマイズできるようにします。
- Functors
イテレータ
名前が示すように、イテレータは一連の値で作業するために使用されます。 STLで汎用性を持たせる大きな特徴です。
- Iterators
Utility Library
ヘッダー <utility> で定義されます。
コメントを残す