Cplusplus-cpp-stl-tutorial
C ++ STLチュートリアル
前に説明したC テンプレートの概念を既に理解していることを願っています。 C STL(標準テンプレートライブラリ)は、ベクター、リスト、キュー、スタックなどの一般的で一般的に使用される多くのアルゴリズムとデータ構造を実装するテンプレートを備えた汎用クラスと機能を提供するC ++テンプレートクラスの強力なセットです。
C ++標準テンプレートライブラリの中核には、次の3つの適切に構成されたコンポーネントがあります-
Sr.No | Component & Description |
---|---|
1 |
Containers コンテナは、特定の種類のオブジェクトのコレクションを管理するために使用されます。 deque、list、vector、mapなどのさまざまなタイプのコンテナがあります。 |
2 |
Algorithms アルゴリズムはコンテナに作用します。 これらは、コンテナのコンテンツの初期化、ソート、検索、および変換を実行する手段を提供します。 |
3 |
Iterators イテレータは、オブジェクトのコレクションの要素をステップスルーするために使用されます。 これらのコレクションは、コンテナまたはコンテナのサブセットです。 |
次の章では、C 標準ライブラリについて説明しながら、3つのC STLコンポーネントすべてについて説明します。 今のところ、3つのコンポーネントにはすべて、非常に簡単な方法で複雑なタスクを実行するのに役立つ豊富な定義済み関数のセットがあることに留意してください。
それが成長した場合に自動的に独自のストレージ要件を処理することを除いて、配列に似ているベクトルコンテナ(C ++標準テンプレート)を示す次のプログラムを見てみましょう-
#include <iostream>
#include <vector>
using namespace std;
int main() {
//create a vector to store int
vector<int> vec;
int i;
//display the original size of vec
cout << "vector size = " << vec.size() << endl;
//push 5 values into the vector
for(i = 0; i < 5; i++) {
vec.push_back(i);
}
//display extended size of vec
cout << "extended vector size = " << vec.size() << endl;
//access 5 values from the vector
for(i = 0; i < 5; i++) {
cout << "value of vec [" << i << "] = " << vec[i] << endl;
}
//use iterator to access the values
vector<int>::iterator v = vec.begin();
while( v != vec.end()) {
cout << "value of v = " << *v << endl;
v++;
}
return 0;
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
vector size = 0
extended vector size = 5
value of vec [0] = 0
value of vec [1] = 1
value of vec [2] = 2
value of vec [3] = 3
value of vec [4] = 4
value of v = 0
value of v = 1
value of v = 2
value of v = 3
value of v = 4
ここでは、上記の例で使用したさまざまな機能に関連する次の点に注意してください-
- push_back()メンバー関数は、ベクターの最後に値を挿入し、必要に応じてサイズを拡張します。
- size()関数は、ベクトルのサイズを表示します。
- 関数begin()は、ベクトルの先頭への反復子を返します。
- 関数end()は、ベクトルの末尾への反復子を返します。