C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++ STLのライブラリ?


C ++ STL(標準テンプレートライブラリ)は、C ++テンプレートクラスの強力なセットであり、ベクター、リスト、キュー、スタックなど、多くの一般的で一般的に使用されるアルゴリズムとデータ構造を実装するテンプレートを備えた汎用クラスと関数を提供します。

>

これは、コンテナクラス、アルゴリズム、およびイテレータのライブラリです。これは一般化されたライブラリであるため、そのコンポーネントはパラメータ化されています。テンプレートクラスの実用的な知識は、STLを使用するための前提条件です。

テンプレートはC++プログラミング言語の機能であり、関数とクラスがジェネリック型で動作できるようにします。これにより、関数またはクラスは、それぞれごとに書き直されることなく、多くの異なるデータ型で機能することができます

C ++標準テンプレートライブラリには、次の3つの適切に構造化されたコンポーネントがあります-

1コンテナ

コンテナは、特定の種類のオブジェクトのコレクションを管理するために使用されます。 deque、list、vector、mapなどのコンテナにはいくつかの異なるタイプがあります。

  • シーケンスコンテナ -これらのコンテナは、順次アクセスできるデータ構造を実装しています。

    • ベクトル
    • リスト
    • deque
    • 配列
    • forward_list
  • コンテナアダプタ -シーケンシャルコンテナに異なるインターフェースを提供します。

    • キュー
    • priority_queue
    • スタック
  • 連想コンテナ -すばやく検索できる並べ替えられたデータ構造を実装します(O(log n)の複雑さ)。

    • セット
    • マルチセット
    • 地図
    • マルチマップ
  • 順序付けられていない連想コンテナ -これらのコンテナは、すばやく検索できる順序付けされていないデータ構造を実装しています

    • unordered_set
    • unordered_multiset
    • unordered_map
    • unordered_multimap

2アルゴリズム

アルゴリズムはコンテナに作用します。これらは、コンテナのコンテンツの初期化、並べ替え、検索、および変換を実行する手段を提供します。

アルゴリズム

  • 並べ替え
  • 検索
  • 重要なSTLアルゴリズム
  • 便利な配列アルゴリズム
  • パーティション操作

3つのイテレータ

イテレータは、オブジェクトのコレクションの要素をステップスルーするために使用されます。これらのコレクションは、コンテナーまたはコンテナーのサブセットである可能性があります。


  1. C ++ STL(3.5)でスタック

    C ++ STLでは、スタックはLIFO構造として実装されるコンテナーとして使用されます。 LIFOは後入れ先出しを意味します。 Stackは、本が上下に並べられた本の山と見なすことができ、最後に挿入された本が最初に削除されるため、LIFO構造と呼ばれます。 スタックに関連付けられている操作は- Top() -この関数は、スタックの最上位要素への参照を返します。 構文 --name_of_stack.top() パラメータ -パラメータなし 戻り値 -スタックコンテナの最上位要素への参照 Push() -この関数は、要素をスタックコンテナに挿入するために使用されま

  2. C ++標準テンプレートライブラリ(STL)の優先キュー

    優先度キューは、優先度に基づいて要素の挿入と削除をサポートする優先度の高い要素のコレクションを格納するための抽象データ型です。つまり、優先度の高い要素はいつでも削除できます。優先度付きキューは、スタック、キュー、リストなどの場所に関して要素を線形に格納しません。優先度付きキューADT(抽象データ型)は、優先度に基づいて要素を格納します。 優先キューは次の機能をサポートします − サイズ() −優先キュー内の要素数を返すため、優先キューのサイズを計算するために使用されます。 Empty() −優先キューが空の場合はtrueを返し、そうでない場合はfalseを返します 挿入(要素) −