C++_Standard_Library
C ++プログラミング言語では、C ++標準ライブラリはクラスと関数のコレクションであり、コア言語とC ++ ISO標準自体の一部で記述されています。
コンテンツ
1 概要
2 実装
2.1 製造中止
2.1.1 Apache C ++標準ライブラリ
2.2 関連項目
3 標準ヘッダー
3.1 全般的 3.2 言語サポート 3.3 コンテナ 3.43.4 イテレータと範囲 3.5 ローカリゼーション 3.6 文字列 3.7 ストリーム、ファイル、および入力/出力 3.8 スレッドサポートライブラリ 3.9 数値ライブラリ 3.10 C標準ライブラリ
4 も参照してください
5 ノート
6 参考文献
7 参考文献
8 外部リンク
概要
C ++標準ライブラリは、いくつかの汎用コンテナ、これらのコンテナを使用および操作するための関数、関数オブジェクト、汎用文字列とストリーム(インタラクティブおよびファイルI / Oを含む)、いくつかの言語機能のサポート、および正方形の検索などの日常的なタスクのための関数を提供します数値のルート。C ++標準ライブラリには、「。h」で終わるISO C標準ライブラリのほとんどのヘッダーも組み込まれていますが、それらの使用は非推奨です。 C ++標準ライブラリの他のヘッダーは「.h」で終わりません。C ++標準ライブラリの機能は、std 名前空間内で宣言されています。
C ++標準ライブラリは、標準テンプレートライブラリ(STL)によって導入された規則に基づいており、ジェネリックプログラミングの研究や、AlexanderStepanovやMengLeeなどのSTLの開発者の影響を受けています。 C ++標準ライブラリとSTLは多くの機能を共有していますが、どちらも他方の厳密なスーパーセットではありません。
C ++標準ライブラリの注目すべき機能は、一般的なアルゴリズムの構文とセマンティクスを指定するだけでなく、それらのパフォーマンスに要件を課すことです。これらのパフォーマンス要件は、よく知られているアルゴリズムに対応していることがよくこのアルゴリズムは、使用する必要はありませんが、期待されています。ほとんどの場合、これには線形時間O(n)または線形時間O(n log n)が必要ですが、安定ソート(インプレースを可能にするため)のための準線形時間O(n log 2 n)などの上限が許可される場合もマージソート)。以前は、ソートは平均してO(n log n)を取るだけで済み、クイックソートを使用できました。これは実際には高速ですが、最悪の場合のパフォーマンスは低くなりますが、イントロソートは、高速の平均パフォーマンスと最適な最悪のパフォーマンスの両方を可能にするために導入されました。ケースの複雑さ、およびC ++ 11の時点で、ソートは最悪の線形性であることが保証されています。その他の場合、選択などの要件は緩いままであり、平均して線形である必要があるだけであり(quickselectのように)、イントロセレクトのように最悪の場合の線形を必要としません。
C ++標準ライブラリは、C ++ ISO標準化の取り組みの一環としてISO標準化が行われ、拡張機能の標準化に関してさらに作業が行われています。
実装
名前
ホームページ ライセンス
最新リリース
GNU C ++標準ライブラリ
libstdc ++ GPLv3 2021年11月15日
LLVM C ++標準ライブラリ
libc ++
LLVM例外を伴うApacheライセンスv2.0
2021年9月30日
NVIDIA C ++標準ライブラリ
libcu ++
LLVM例外を伴うApacheライセンスv2.0
2021年8月9日
Microsoft C ++標準ライブラリ MSVCSTL LLVM例外を伴うApacheライセンスv2.0
2021年12月16日
並列処理と並行性のためのHPXC ++標準ライブラリ HPX Boostソフトウェアライセンス1.0
2021年8月12日
Electronic Arts Standard Template Library EASTL BSD3-条項ライセンス
2021年10月20日
Dinkum C ++ライブラリ
わからない
商業の
わからない
Cray C ++標準ライブラリ
わからない
商業の
わからない
製造中止
Apache C ++標準ライブラリ
ApacheのC ++標準ライブラリには、他のオープンソース実装です。もともとはRogueWave Softwareによって商業的に開発され、後にApache SoftwareFoundationに寄付されました。はしかし、リリースせずに五年以上後に、Apache Software Foundationの会は、このプロジェクトを終了し、それを移動することを決めたApacheの屋根裏。
関連項目
次のライブラリは、C ++標準ライブラリの多くを実装しています。
名前
ホームページ
説明
アブセイリング
Googleが内部で使用するライブラリのオープンソースコレクション
愚か者
Facebookで広く使用されているさまざまなC ++ 14ライブラリ
Bareflankサポートライブラリ
コンパイル時にすべてを実行できるC ++ライブラリ
標準ヘッダー
次のファイルには、C ++標準ライブラリの宣言が含まれています。
全般的 C ++ 17の 新 機能。型消去されたクラスを提供します
std::any。 C ++ 11の 新 機能。クラステンプレートstd::atomic、そのいくつかのテンプレートの特殊化、およびより多くのアトミック操作を提供します
時間などの要素を、提供
std::chrono::duration、
std::chrono::time_pointおよびクロックを。C ++ 20以降
、カレンダー、タイムゾーン、より多くの時計、文字列クロノフォーマットなどの新しい追加が追加されました。 C ++ 20の 新 機能。基本的なライブラリの概念を提供します
標準アルゴリズムで使用するために設計された、
いくつかの関数オブジェクトを提供します
クラステンプレートを含む、C ++での
メモリ管理の
ための機能を提供します
std::unique_ptr。 C ++ 17の 新 機能。実行時に動作が変更される可能性のあるポリモーフィックメモリアロケータを作成するための機能を提供します。 C ++ 11の 新 機能。を提供します
std::scoped_allocator_adaptor。 std::logic_errorと
などの標準の例外クラスが含まれています
。std::runtime_errorどちらもstd::exception。から派生してい
C ++ 11の 新 機能。定義
std::error_code C ++ 17の 新 機能。クラステンプレート提供
std::optional、
オプションのタイプを。 C ++ 23の 新 機能。スタックトレース操作を提供し
C ++ 11およびTR1の 新 機能。クラステンプレートstd::tuple、
タプルを提供します
C ++ 11の 新 機能。タイプを操作するメタプログラミング機能を提供します。 様々なユーティリティを提供する:クラステンプレート
std::pair(二部材の
タプル)、コンパイル時系列、語彙タイプの構築にヘルパーなどの機能整数
std::moveと
std::forwardし、より多くの。std::rel_ops比較演算子を自動的に生成するための名前空間
は、C ++ 20で非推奨になり、
新しいデフォルトの比較演算子が採用されました。 C ++ 17の 新 機能。クラステンプレートstd::variant、
タグ付き共用体タイプを提供します 言語サポート C ++ 20の 新 機能。宇宙船演算子のサポートを提供します
C ++ 20の 新 機能。コルーチンサポートを提供します
標準ライブラリによってスローされるすべての例外の基本クラスを含む、例外処理に
関連するいくつかのタイプと関数を提供します
std::exception。 C ++ 11の 新 機能。イニシャライザリストのサポートを提供します。 std::numeric_limits基本的な数値型のプロパティを記述するために使用される
クラステンプレートを提供します
C ++メモリ管理の基本を構成する
演算子newや
deleteその他の関数および型
を提供します
C ++ 20の 新 機能。などの事前定義されたマクロの代わりに、ソースの場所情報をキャプチャすることを提供します __LINE__。
C ++実行時型情報を操作するための機能を提供します
C ++ 20の 新 機能。C ++標準ライブラリの実装に関する情報を提供します。
コンテナ C ++ 11およびR1の 新
機能。コンテナクラステンプレートstd::array、固定サイズの配列のコンテナを提供します
特殊なコンテナクラスstd::bitset、
ビット配列を提供します
コンテナクラステンプレートstd::deque、
両端キューを提供
します。 C ++ 11およびR1の 新
機能。単一リンクリストstd::forward_listである
コンテナクラステンプレートを提供します コンテナクラステンプレートstd::list、
二重リンクリストを提供します