【C++】STL入門(理解編) 【STLの概念、STLの歴史的理由、STLの6つの要素、STLの重要性、STLの学習方法とSTLの欠点の解説】




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の重要性

  1. 筆記テストで
    2 進数レイヤー シーケンスの印刷
    バイナリ ツリーを再構築する
    2 つのスタックを実装するキュー

  2. インタビューで

  3. 職場
    インターネットには、「STL を理解していないのに、C++ を知っていると言うな」という格言があります。 STL は C++ の優れた作品です。STL を使用すると、多くの基礎となるデータ構造とアルゴリズム自体を再発明する必要がなく、前任者の肩の上に立って迅速に開発できます。



5. STLの学習方法

ここに画像の説明を挿入します



6. STLの欠点

  1. STL ライブラリの更新が遅すぎます。 これは重大なクレームです。前回のバージョンは C++98 でしたが、途中の C++03 が基本的に改訂されました。 C++11 の登場から 13 年が経過し、STL もさらにアップデートされました。
  2. STL は現在スレッド セーフをサポートしていません同時実行環境では、自分自身をロックする必要があります。また、ロックの粒度は比較的大きいです。
  3. STL は効率を極限まで追求するため、内部が複雑になります。 型抽出、イテレータ抽出など。
  4. STL を使用するとコード拡張が発生します。たとえば、vector/vector/vector を使用すると、コードの複数のコピーが生成されます。もちろん、 、これはテンプレート構文自体が原因です。

おすすめ

転載: blog.csdn.net/NiNi_suanfa/article/details/134588001