標準C++ライブラリ

**標準C++ライブラリ**は、プログラミング言語C++の標準規格で定められたライブラリである。これはクラスと関数などの集合であり、汎用的なコンテナとそれを操作する関数、関数オブジェクト、汎用的な文字列とストリーム（コンソールやファイルとの入出力）、言語機能サポート、数学関数ライブラリ（超越関数の近似を含む）などといった一般的かつ汎用的な関数などから構成される。また、ISO C90規格の標準Cライブラリも含んでいる（C++11でC99互換のライブラリも追加された）。標準C++ライブラリはそのほとんどが名前空間`'''std'''`内にある。C++11規格以降では標準ライブラリに大幅な拡張や機能追加が行なわれた。

Standard Template Library (STL) は標準C++ライブラリの一部分で、コンテナ、アルゴリズム、イテレータ、関数オブジェクトなどを含むものである。

C言語と異なり、標準C++ライブラリのヘッダには末尾に拡張子 (.h) が付かない。

## ヘッダ
次に挙げるヘッダが存在する。

### コンテナ
*&lt;array&gt; (C++11)
*&lt;deque&gt;
*&lt;forward_list&gt; (C++11)
*&lt;list&gt;
*&lt;map&gt;
*&lt;queue&gt;
*&lt;set&gt;
*&lt;stack&gt;
*&lt;unordered_set&gt; (C++11)
*&lt;unordered_map&gt; (C++11)
*&lt;vector&gt;

### 一般
*&lt;algorithm&gt;
*&lt;any&gt; (C++17)
*&lt;bitset&gt;
*&lt;chrono&gt; (C++11)
*&lt;codecvt&gt; (C++11、C++17で非推奨化、C++26で削除)
*&lt;functional&gt;
*&lt;iterator&gt;
*&lt;locale&gt;
*&lt;memory&gt;
*&lt;memory_resource&gt; (C++17)
*&lt;optional&gt; (C++17)
*&lt;ratio&gt; (C++11)
*&lt;scoped_allocator&gt; (C++11)
*&lt;tuple&gt; (C++11)
*&lt;typeindex&gt; (C++11)
*&lt;type_traits&gt; (C++11)
*&lt;utility&gt;
*&lt;variant&gt; (C++17)

### 文字列
*&lt;regex&gt; (C++11)
*&lt;string&gt;
*&lt;string_view&gt; (C++17)

### ストリームと入出力
*&lt;filesystem&gt; (C++17)
*&lt;fstream&gt;
*&lt;ios&gt;
*&lt;iostream&gt;
*&lt;iosfwd&gt;
*&lt;iomanip&gt;
*&lt;istream&gt;
*&lt;ostream&gt;
*&lt;sstream&gt;
*&lt;strstream&gt; - deprecated、sstream 推奨
*&lt;streambuf&gt;

### 数値処理
*&lt;complex&gt;
*&lt;numeric&gt;
*&lt;random&gt;
*&lt;valarray&gt;

### 言語支援
*&lt;exception&gt;
*&lt;initializer_list&gt; (C++11)
*&lt;limits&gt;
*&lt;new&gt;
*&lt;typeinfo&gt;

### 診断
*&lt;stdexcept&gt;
*&lt;system_error&gt;

### スレッド
*&lt;atomic&gt; (C++11)
*&lt;condition_variable&gt; (C++11)
*&lt;future&gt; (C++11)
*&lt;mutex&gt; (C++11)
*&lt;shared_mutex&gt; (C++14)
*&lt;thread&gt; (C++11)

### 標準Cライブラリ

C++において標準Cライブラリのヘッダは、Cと異なった名前になる。ヘッダ名の末尾から拡張子 .h を取り除き、先頭に c を加える。例えば time.h は ctime という具合である。そしてヘッダ内の宣言は名前空間`std`の中に置かれるため、（名前空間の影響を受けないマクロを除いて）関数や型名には`std::`を付けて完全修飾することで区別する。なお、ISO Cでは関数をマクロとして実装することも認めていたが、ISO C++では認められていない。
*&lt;cassert&gt;
*&lt;cctype&gt;
*&lt;cerrno&gt;
*&lt;cfenv&gt; (C++11)
*&lt;cfloat&gt;
*&lt;climits&gt;
*&lt;cmath&gt;
*&lt;csetjmp&gt;
*&lt;csignal&gt;
*&lt;cstdlib&gt;
*&lt;cstddef&gt;
*&lt;cstdarg&gt;
*&lt;cuchar&gt;
*&lt;ctime&gt;
*&lt;cstdio&gt;
*&lt;cstring&gt;
*&lt;cwchar&gt;
*&lt;cwctype&gt;

### C++20の新しいヘッダ

*&lt;barrier&gt; (C++20) - バリア同期プリミティブを提供
*&lt;bit&gt; (C++20) - ビット操作関数群
*&lt;compare&gt; (C++20) - 三方比較演算子（`<=>`) の関連機能
*&lt;concepts&gt; (C++20) - 基本的なコンセプトライブラリ
*&lt;coroutine&gt; (C++20) - コルーチンサポート用の型と関数
*&lt;format&gt; (C++20) - テキストフォーマット機能
*&lt;latch&gt; (C++20) - ラッチ同期プリミティブ
*&lt;numbers&gt; (C++20) - 数学定数（π, e など）
*&lt;ranges&gt; (C++20) - レンジライブラリ
*&lt;semaphore&gt; (C++20) - セマフォ同期プリミティブ
*&lt;source_location&gt; (C++20) - ソースコード位置情報
*&lt;span&gt; (C++20) - メモリ範囲を参照する型
*&lt;stop_token&gt; (C++20) - 非同期操作のキャンセル機能
*&lt;syncstream&gt; (C++20) - 同期ストリーム機能
*&lt;version&gt; (C++20) - 実装のバージョン情報

## 外部リンク
*Rogue Wave 標準 C++ ライブラリ・ユーザーズガイド
*C++ Standard Library Reference | Microsoft Documentation
*C++ Standard Library reference

## 参考文献
*『プログラミング言語C++第3版』(1998) ビャーネ・ストロヴストルップ著 長尾高弘訳 アジソンウェスレイパブリッシャーズジャパン ISBN 978-4756118950