STL

読み:エスティーエル
外語:STL: Standard Template Library 英語
品詞:名詞

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

目次

可変長配列/リスト/マップ(連想配列)等の基本的なコレクションクラス、コレクションを操作するイテレーター、オブジェクト化されたアルゴリズムや関数、などを提供する。

テンプレートを多用しており、多くはヘッダーファイルのみで実装される。

STLという用語は、正式な定義はない。一般には、次のものから構成されると認識されている。

  • コンテナー
  • イテレーター(反復子)
  • 共通アルゴリズム
  • 関数オブジェクト(ファンクションオブジェクト)

これらと、他の標準C++ライブラリを組み合わせてC++のプログラムは記述される。

コンテナー

コンテナーは、動的に領域を確保し、自動的に解放をしてくれる機能である。

大きく三種類に分類される、次の機能がある。

  • 順序コンテナー
    • vector ‐ 動的配列
    • list ‐ 双方向リンク型リスト
    • deque ‐ 動的配列(両端キュー)
  • コンテナーアダプター
  • 連想コンテナー
    • map ‐ マップ
    • multimap ‐ マルチマップ
    • set ‐ セット
    • multiset ‐ マルチセット

イテレーター

イテレーター(反復子)は、コンテナーの各要素へアクセスするためのクラスである。

どのようなクラスでも共通のインターフェイスを持っており、またポインターと同様にインクリメント/デクリメントで前後に移動し、*や->で要素の参照が可能となっている。

共通アルゴリズム

コンテナーの要素に対して使われる関数群である。

ソート、マージ、検索、反転など、様々なものが用意されている。

これらの関数は、イテレーターを介してコンテナーの要素にアクセスする。

関数オブジェクト

演算子をオブジェクト化したもの。

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

用語の所属
C++
標準C++ライブラリ

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club