標準C++ライブラリ
読み:ひょうじゅんスィープラスプラス-ライブラリ
外語:Standard C++ Library
C++
の標準規格で定められた
ライブラリ
。
目次
概要
種類
特徴
STL
STL以外
C++03
C++11
標準Cライブラリ
概要
様々な汎用的な処理として作られた、
クラス
や
メンバー変数
を集めたものである。
汎用的なコンテナーなどの処理を含む
STL
を代表とし、他に文字列やストリーム機能、言語機能、数学処理などを持っている。
種類
libstdc++
(制限付きGPLv3)
GCC
で使われている
libc++
(UoI-NCSA OSL)
clang/LLVM
で使われている
特徴
STL
STL
という用語は、正式な定義はない。一般には、コンテナー、
イテレーター
(反復子)、アルゴリズムなどを含むと解釈されている。つまり、次のようなものがSTLである。
コンテナー
<deque> ‐ 動的配列(両端キュー)
<list> ‐ 双方向リンク型リスト
<map> ‐ キーと値の組み合わせを扱う連想配列
<queue> ‐ 先頭での追加と終端での削除に対応するシーケンス
<set> ‐ 一意なキーを扱う連想コンテナー
<stack> ‐ 始端での追加と削除に対応するシーケンス
<
vector
> ‐ ランダムアクセスをサポートするシーケンス
イテレーター
(反復子)
<iterator> ‐ コンテナーの各要素へアクセスするためのクラス
共通アルゴリズム
<algorithm> ‐ コンテナに適用できる標準のアルゴリズム
<numeric> ‐ 汎用数値演算
関数オブジェクト(ファンクションオブジェクト)
<functional> ‐ 関数オブジェクト
その他
<memory> ‐ メモリーアロケーター
<utility> ‐ 比較演算子
STL以外
STLの他に、次のようなものが含まれている。
C++03
C++03(ISO/IEC 14882:2003)で対応するもの。
文字列
<
string
> ‐ 文字のシーケンス
コンテナ
<bitset> ‐ 固定サイズのビットシーケンス
数値
<complex> ‐ 複素数を表わす数値型
<valarray> ‐ 数値計算用に定義された
配列
ストリーム入出力
<fstream> ‐ ファイルへのストリーム入出力
<ios> ‐ iostream基底クラス
<iosfwd> ‐ iostreamクラスの前方宣言
<iostream> ‐ 基本的なストリーム入出力機能
<iomanip> ‐ iostreamマニピュレーター
<istream> ‐ 入力ストリーム
<ostream> ‐ 出力ストリーム
<sstream> ‐ 文字列ストリーム
<streambuf> ‐ iostream用のバッファクラス
基本的なメモリー割り当て
<new> ‐ 基本的なメモリー割り当てと解放
例外
<exception> ‐ 事前定義されている例外クラス
<stdexcept> ‐ 追加の標準例外クラス
実行時型情報
<typeinfo> ‐ 実行時型識別情報
ローカライズ
<locale> ‐ 国際化のサポート
その他
<limits> ‐ 数値型の属性
非標準のコンテナクラス(SGI STL)
<hash_map> ‐ ハッシュを使ったマップ
<hash_set> ‐ ハッシュを使った集合
<slist> ‐ 単方向型リスト
<rope> ‐ 長い文字列
C++11
C++11(
ISO/IEC 14882:2011
)から新たに対応したもの。
コンテナ
<array> ‐
配列
<forward_list> ‐ 単方向リスト
<unordered_map> ‐ 非順序連想配列
<unordered_set> ‐ 非順序集合
数値
<random> ‐ 乱数生成
例外
<system_error> ‐ システムエラーサポート
ローカライズ
<codecvt> ‐ 文字コード変換
正規表現
<regex> ‐ 正規表現
アトミック操作
<atomic> ‐ アトミック操作
スレッドの管理
<thread> ‐ マルチスレッドの管理
<mutex> ‐ mutex
<condition_variable> ‐ 条件変数
<future> ‐ 先物
その他
<chrono> ‐ 時間ユーティリティ
<scoped_allocator> ‐ スコープ付きアロケーター
<typeindex> ‐ 型のインデックス
<ratio> ‐ 時間有理数演算
<tuple> ‐ タプル
<type_traits> ‐ 型特性
標準Cライブラリ
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> ‐ ワイド文字種分類及びワイド文字大文字小文字変換ユーティリティ
再検索