C ++ライブラリ-<スタック>
前書き
スタックは、LIFO(後入れ先出し)コンテキストで動作するように設計されたデータ構造です。スタック内の要素は挿入されるだけでなく、一方の端からのみ削除されます。
スタッククラスはコンテナアダプタです。コンテナは、同じタイプのデータを保持するオブジェクトです。スタックは、さまざまなシーケンスコンテナから作成できます。コンテナが提供されていない場合は、デフォルトのdequeコンテナが使用されます。コンテナアダプタはイテレータをサポートしていないため、データ操作に使用することはできません。ただし、データの挿入と削除のために、それぞれpush()とpop()のメンバー関数をサポートしています。
定義
以下は、<stack>ヘッダーファイルからのstd :: stackの定義です。
template <class T, class Container = deque<T> > class stack;
パラメーター
T −含まれている要素のタイプ。
Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。
Container −基になるコンテナオブジェクトのタイプ。
メンバータイプ
以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。
シニア番号 | メンバータイプ | 定義 |
---|---|---|
1 | value_type | T(テンプレートの最初のパラメーター) |
2 | container_type | テンプレートの2番目のパラメーター |
3 | size_type | size_t |
4 | 参照 | value_type& |
5 | const_reference | const value_type& |
<スタック>からの関数
以下は、<stack>ヘッダーのすべてのメソッドのリストです。
コンストラクター
シニア番号 | 方法と説明 |
---|---|
1 | stack :: stack デフォルトコンストラクタ 要素がゼロの空のスタックオブジェクトを作成します。 |
2 | stack :: stack コピーコンストラクタ 別のスタックに存在する各要素のコピーを使用してスタックを構築します。 |
3 | stack :: stackmove コンストラクター 移動セマンティクスを使用して、他のコンテンツでスタックを構築します。 |
デストラクタ
シニア番号 | 方法と説明 |
---|---|
1 | スタック::〜スタック コンテナメモリの割り当てを解除してスタックを破棄します。 |
メンバー関数
シニア番号 | 方法と説明 |
---|---|
1 | stack :: emplace スタックの一番上に新しい要素を作成して挿入します。 |
2 | スタック::空 スタックが空かどうかをテストします。 |
3 | stack :: operator =コピーバージョン 古いコンテンツを置き換えることにより、新しいコンテンツをスタックに割り当てます。 |
4 | stack :: operator =ムーブバージョン 古いコンテンツを置き換えることにより、新しいコンテンツをスタックに割り当てます。 |
5 | スタック::ポップ スタックから最上位の要素を削除します。 |
6 | スタック::プッシュコピーバージョン スタックの一番上に新しい要素を挿入します。 |
7 | スタック::プッシュ移動バージョン スタックの一番上に新しい要素を挿入します。 |
8 | スタック::サイズ スタックに存在する要素の総数を返します。 |
9 | スタック::スワップ スタックの内容を別のスタックの内容と交換します。 |
10 | スタック::トップ スタックの最上位要素への参照を返します。 |
非メンバーのオーバーロードされた関数
シニア番号 | 方法と説明 |
---|---|
1 | 演算子== 2つのスタックが等しいかどうかをテストします。 |
2 | 演算子!= 2つのスタックが等しいかどうかをテストします。 |
3 | 演算子< 最初のスタックが他のスタックよりも少ないかどうかをテストします。 |
4 | 演算子<= 最初のスタックが他のスタック以下であるかどうかをテストします。 |
5 | 演算子> 最初のスタックが他のスタックよりも大きいかどうかをテストします。 |
6 | 演算子> = 最初のスタックが他のスタック以上であるかどうかをテストします。 |
7 | スワップ 2つのスタックの内容を交換します。 |