STL
読み:エスティーエル
外語:STL: Standard Template Library

 標準テンプレートライブラリ。標準C++ライブラリに含まれる機能の一つである。
目次

概要
 可変長配列/リスト/マップ(連想配列)等の基本的なコレクションクラス、コレクションを操作するイテレーター、オブジェクト化されたアルゴリズムや関数、などを提供する。
 テンプレートを多用しており、多くはヘッダーファイルのみで実装される。

特徴
 STLという用語は、正式な定義はない。一般には、次のものから構成されると認識されている。
 これらと、他の標準C++ライブラリを組み合わせてC++のプログラムは記述される。

機能

コンテナー
 コンテナーは、動的に領域を確保し、自動的に解放をしてくれる機能である。
 大きく三種類に分類される、次の機能がある。

イテレーター
 イテレーター(反復子)は、コンテナーの各要素へアクセスするためのクラスである。
 どのようなクラスでも共通のインターフェイスを持っており、またポインターと同様にインクリメント/デクリメントで前後に移動し、*や->で要素の参照が可能となっている。

共通アルゴリズム
 コンテナーの要素に対して使われる関数群である。
 ソート、マージ、検索、反転など、様々なものが用意されている。
 これらの関数は、イテレーターを介してコンテナーの要素にアクセスする。

関数オブジェクト
 演算子をオブジェクト化したもの。
 Cのqsort()関数を例とすると、値を比較するための関数へのポインターを渡していた。C++のSTLでは、関数オブジェクトを用いる。必要な演算子がオーバーロードされていれば、いちいち関数を定義する必要がない。

再検索