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

C ++標準テンプレートライブラリ(STL)


標準テンプレートライブラリは、C++標準ライブラリのいくつかの部分に影響を与えたC++プログラミング言語用のソフトウェアライブラリです。アルゴリズム、コンテナ、関数、イテレータと呼ばれる4つのコンポーネントを提供します。 「STL」または「標準テンプレートライブラリ」という用語は、ISO 14882C++標準のどこにも表示されないことに注意してください。したがって、C ++標準ライブラリをSTLと呼ぶのは間違っています。つまり、STLとC ++標準ライブラリは2つの異なるものであり、前者は後者のサブセットです。

STLは-

で構成されます コンテナ

STLには、シーケンスコンテナと連想コンテナが含まれています。コンテナは、データを格納するオブジェクトです。標準のシーケンスコンテナには、vector、deque、およびlistが含まれます。標準の連想コンテナは、set、multiset、map、multimap、hash_set、hash_map、hash_multiset、およびhash_multimapです。コンテナアダプタのキュー、priority_queue、およびスタックもあります。これらは、実装として他のコンテナを使用する、特定のインターフェイスを備えたコンテナです。

イテレータ

イテレータは、プログラマーがコンテナーをトラバースできるようにするオブジェクトです。 STLは、5つの異なるタイプのイテレータを実装します。入力(値のシーケンスの読み取りに使用)、出力(値のシーケンスの書き込みに使用)、順方向(読み取り、書き込み、および順方向に移動可能)、双方向(順方向のように)イテレータですが、逆方向に移動することもできます)およびランダムアクセス(1回の操作で任意の数のステップを自由に移動できます)。イテレータは、STLの一般性を可能にする主要な機能です。

アルゴリズム

STLのアルゴリズムは、さまざまな要素で使用するために特別に設計された関数のコレクションです。範囲とは、配列や一部のSTLコンテナーのインスタンスなど、イテレーターまたはポインターを介してアクセスできるオブジェクトのシーケンスです。 STLのアルゴリズムの例:sort(範囲内の要素を並べ替える)、binary_search(値が並べ替えられた順序で存在するかどうかをテストする)、min_element(範囲内の最小の要素を返す)など。これらのアルゴリズムはすべて、受け入れられる任意のデータ型に適用できることに注意してください。テンプレートとして。


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

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

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

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