C++の標準規格で定められたライブラリ。
様々な汎用的な処理として作られた、クラスやメンバー変数を集めたものである。
汎用的なコンテナーなどの処理を含むSTLを代表とし、他に文字列やストリーム機能、言語機能、数学処理などを持っている。
STLという用語は、正式な定義はない。一般には、コンテナー、イテレーター(反復子)、アルゴリズムなどを含むと解釈されている。つまり、次のようなものがSTLである。
- コンテナー
- <deque> ‐ 動的配列(両端キュー)
- <list> ‐ 双方向リンク型リスト
- <map> ‐ キーと値の組み合わせを扱う連想配列
- <queue> ‐ 先頭での追加と終端での削除に対応するシーケンス
- <set> ‐ 一意なキーを扱う連想コンテナー
- <stack> ‐ 始端での追加と削除に対応するシーケンス
- <vector> ‐ ランダムアクセスをサポートするシーケンス
- イテレーター(反復子)
- <iterator> ‐ コンテナーの各要素へアクセスするためのクラス
- 共通アルゴリズム
- <algorithm> ‐ コンテナに適用できる標準のアルゴリズム
- <numeric> ‐ 汎用数値演算
- 関数オブジェクト(ファンクションオブジェクト)
- その他
- <memory> ‐ メモリーアロケーター
- <utility> ‐ 比較演算子
STLの他に、次のようなものが含まれている。
C++03
C++03(ISO/IEC 14882:2003)で対応するもの。
- 文字列
- コンテナ
- <bitset> ‐ 固定サイズのビットシーケンス
- 数値
- <complex> ‐ 複素数を表わす数値型
- <valarray> ‐ 数値計算用に定義された配列
- ストリーム入出力
- <fstream> ‐ ファイルへのストリーム入出力
- <ios> ‐ iostream基底クラス
- <iosfwd> ‐ iostreamクラスの前方宣言
- <iostream> ‐ 基本的なストリーム入出力機能
- <iomanip> ‐ iostreamマニピュレーター
- <istream> ‐ 入力ストリーム
- <ostream> ‐ 出力ストリーム
- <sstream> ‐ 文字列ストリーム
- <streambuf> ‐ iostream用のバッファクラス
- 基本的なメモリー割り当て
- 例外
- <exception> ‐ 事前定義されている例外クラス
- <stdexcept> ‐ 追加の標準例外クラス
- 実行時型情報
- ローカライズ
- その他
- 非標準のコンテナクラス(SGI STL)
- <hash_map> ‐ ハッシュを使ったマップ
- <hash_set> ‐ ハッシュを使った集合
- <slist> ‐ 単方向型リスト
- <rope> ‐ 長い文字列
C++11
C++11(ISO/IEC 14882:2011)から新たに対応したもの。
- コンテナ
- <array> ‐ 配列
- <forward_list> ‐ 単方向リスト
- <unordered_map> ‐ 非順序連想配列
- <unordered_set> ‐ 非順序集合
- 数値
- 例外
- <system_error> ‐ システムエラーサポート
- ローカライズ
- 正規表現
- アトミック操作
- スレッドの管理
- <thread> ‐ マルチスレッドの管理
- <mutex> ‐ mutex
- <condition_variable> ‐ 条件変数
- <future> ‐ 先物
- その他
- <chrono> ‐ 時間ユーティリティ
- <scoped_allocator> ‐ スコープ付きアロケーター
- <typeindex> ‐ 型のインデックス
- <ratio> ‐ 時間有理数演算
- <tuple> ‐ タプル
- <type_traits> ‐ 型特性
C++でも、標準Cライブラリは利用できる。
従来の形式でも使えるが、そのままだとグローバル名前空間となるため都合が悪い。そこでC++では、標準C++ライブラリが所属する名前空間であるstdに配置するためのヘッダーファイルが用意される。
具体的には、先頭にcを付けて後尾の.hを消す。例えば、stdio.hはcstdioになる。
なお、C++11(ISO/IEC 14882:2011)からは、C99(ISO/IEC 9899:1999)のライブラリに対応した。
- <cassert> ‐ 診断機能
- <ccomplex> ‐ 複素数計算 (C++11以降)
- <cctype> ‐ 文字操作
- <cerrno> ‐ エラー
- <cfenv> ‐ 浮動小数点環境 (C++11以降)
- <cfloat> ‐ 浮動小数点型の特性
- <cinttypes> ‐ 整数型の書式変換 (C++11以降)
- <ciso646> ‐ 代替つづり
- <climits> ‐ 整数型の大きさ
- <clocale> ‐ 文化圏固有操作
- <cmath> ‐ 数学関数
- <csetjmp> ‐ 非局所分岐
- <csignal> ‐ シグナル操作
- <cstdalign> ‐ アラインメント操作
- <cstdarg> ‐ 可変個数の実引数
- <cstdbool> ‐ 論理型及び論理値 (C++11以降)
- <cstddef> ‐ 共通の定義
- <cstdint> ‐ 整数型 (C++11以降)
- <cstdio> ‐ 入出力
- <cstdlib> ‐ 一般ユーティリティ
- <cstring> ‐ 文字列操作
- <ctgmath> ‐ 型総称数学関数 (C++11以降)
- <ctime> ‐ 日付及び時間
- <cuchar> ‐ Unicode文字型 (C++11以降)
- <cwchar> ‐ 多バイト文字及びワイド文字拡張ユーティリティ
- <cwctype> ‐ ワイド文字種分類及びワイド文字大文字小文字変換ユーティリティ
用語の所属
C++
ライブラリ
関連する用語
libc++
libstdc++
標準Cライブラリ