ここにカスタム ディレクトリのタイトルを書き込みます
1. STLとは
STL (標準テンプレート ライブラリ - 標準テンプレート ライブラリ): これはC++ 標準ライブラリ 再利用可能なコンポーネント ライブラリだけでなく、 データ構造とアルゴリズムを含むソフトウェア フレームワークも含まれます 。
2.STLバージョン
1. オリジナルバージョン
HP Labs の Alexander Stepanov と Meng Lee によって完成されたオリジナル バージョンは、オープン ソースの精神に基づき、誰でも使用できると述べています。これらのコードをコピー、変更、配布、商業的に使用する場合、料金は発生しません。 唯一の条件は、オリジナル バージョンと同様にオープン ソースとして使用する必要があることです。 HP バージョン – すべての STL 実装の祖先。
2.P.J.バージョン
P. J. Plauger によって開発され、HP バージョンから継承され、Windows Visual C++ に採用されています。公開または変更することはできません。欠点: 可読性が低く、シンボルの命名が奇妙です。
3.RWバージョン
Rouge Wage Company が開発し、HP 版を継承して C++ Builder に採用されており、公開や改変はできず、可読性は平均的です。
★4.SGIバージョン
は、Silicon Graphics Computer Systems, Inc. によって開発され、HP バージョンから継承されました。 GCC (Linux) で採用されており、移植性が高く、公開、改変、販売も可能で、ネーミングやプログラミングのスタイルからも非常に読みやすいです。 後で STL を学習するときにソース コードの一部を読む必要がありますが、このバージョンを参照する必要があります。
3. STL の 6 つの主要コンポーネント
4. STLの重要性
-
インタビューで
-
職場
インターネットには、「STL を理解していないのに、C++ を知っていると言うな」という格言があります。 STL は C++ の優れた作品です。STL を使用すると、多くの基礎となるデータ構造とアルゴリズム自体を再発明する必要がなく、前任者の肩の上に立って迅速に開発できます。
5. STLの学習方法
6. STLの欠点
- STL ライブラリの更新が遅すぎます。 これは重大なクレームです。前回のバージョンは C++98 でしたが、途中の C++03 が基本的に改訂されました。 C++11 の登場から 13 年が経過し、STL もさらにアップデートされました。
- STL は現在スレッド セーフをサポートしていません。 同時実行環境では、自分自身をロックする必要があります。また、ロックの粒度は比較的大きいです。
- STL は効率を極限まで追求するため、内部が複雑になります。 型抽出、イテレータ抽出など。
- STL を使用するとコード拡張が発生します。たとえば、vector/vector/vector を使用すると、コードの複数のコピーが生成されます。もちろん、 、これはテンプレート構文自体が原因です。