標準C++ライブラリ
標準C++ライブラリは、プログラミング言語C++の標準規格で定められたライブラリである。これはクラスと関数などの集合であり、汎用的なコンテナとそれを操作する関数、関数オブジェクト、汎用的な文字列とストリーム(コンソールやファイルとの入出力)、言語機能サポート、数学関数ライブラリ(超越関数の近似を含む)などといった一般的かつ汎用的な関数などから構成される。また、ISO C90規格の標準Cライブラリも含んでいる(C++11でC99互換のライブラリも追加された)。標準C++ライブラリはそのほとんどが名前空間std
内にある。C++11規格以降では標準ライブラリに大幅な拡張や機能追加が行なわれた。
Standard Template Library (STL) は標準C++ライブラリの一部分で、コンテナ、アルゴリズム、イテレータ、関数オブジェクトなどを含むものである。
ヘッダ 編集
次に挙げるヘッダが存在する。
コンテナ 編集
- <array> (C++11)
- <deque>
- <forward_list> (C++11)
- <list>
- <map>
- <queue>
- <set>
- <stack>
- <unordered_set> (C++11)
- <unordered_map> (C++11)
- <vector>
一般 編集
- <algorithm>
- <any> (C++17)
- <bitset>
- <chrono> (C++11)
- <codecvt> (C++11、C++17で非推奨化、C++26で削除)
- <functional>
- <iterator>
- <locale>
- <memory>
- <memory_resource> (C++17)
- <optional> (C++17)
- <ratio> (C++11)
- <scoped_allocator> (C++11)
- <tuple> (C++11)
- <typeindex> (C++11)
- <type_traits> (C++11)
- <utility>
- <variant> (C++17)
文字列 編集
ストリームと入出力 編集
- <filesystem> (C++17)
- <fstream>
- <ios>
- <iostream>
- <iosfwd>
- <iomanip>
- <istream>
- <ostream>
- <sstream>
- <strstream> - deprecated、sstream 推奨
- <streambuf>
数値処理 編集
言語支援 編集
診断 編集
- <stdexcept>
- <system_error>
スレッド 編集
- <atomic> (C++11)
- <condition_variable> (C++11)
- <future> (C++11)
- <mutex> (C++11)
- <shared_mutex> (C++14)
- <thread> (C++11)
標準Cライブラリ 編集
詳細は「標準Cライブラリ」を参照
C++において標準Cライブラリのヘッダは、Cと異なった名前になる。ヘッダ名の末尾から拡張子 .h を取り除き、先頭に c を加える。例えば time.h は ctime という具合である。そしてヘッダ内の宣言は名前空間std
の中に置かれるため、(名前空間の影響を受けないマクロを除いて)関数や型名にはstd::
を付けて完全修飾することで区別する。なお、ISO Cでは関数をマクロとして実装することも認めていたが、ISO C++では認められていない。
外部リンク 編集
参考文献 編集
- 『プログラミング言語C++第3版』(1998) ビャーネ・ストロヴストルップ著 長尾高弘訳 アジソンウェスレイパブリッシャーズジャパン ISBN 978-4756118950