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

C ++ STLでpush()とpop()をスタックします


この記事では、C++STLでのstack::push()およびstack ::pop()関数の動作、構文、および例について説明します。

C ++ STLのスタックとは何ですか?

スタックは、データをLIFO(後入れ先出し)に格納するデータ構造であり、最後に挿入された要素の先頭から挿入と削除を行います。プレートのスタックのように、新しいプレートをスタックに押し込みたい場合は上部に挿入し、プレートをスタックから削除したい場合は上部からも削除します。

stack ::push()とは何ですか?

stack ::push()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。 push()は、スタックコンテナの一番上に要素をプッシュまたは挿入するために使用されます。新しい要素のコンテンツがコピーされ、初期化されます。

構文

stack_name.push(value_type& val);

パラメータ

この関数は、次のパラメーターを受け入れます-

  • val −プッシュしたい価値

戻り値

この関数は何も返しません

入力

std::stack<int> stack1;
stack1.push(1);
stack1.push(2);
stack1.push(3);

出力

3 2 1

#include <iostream>
#include <stack>
using namespace std;
int main(){
   stack<int>stck;
   int Product = 1;
   stck.push(1);
   stck.push(2);
   stck.push(3);
   stck.push(4);
   stck.push(5);
   stck.push(6);
   while (!stck.empty()){
      Product = Product * stck.top();
      cout<<"\nsize of stack is: "<<stck.size();
      stck.pop();
   }
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

size of stack is: 6
size of stack is: 5
size of stack is: 4
size of stack is: 3
size of stack is: 2
size of stack is: 1

stack ::pop()とは何ですか?

stack ::pop()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。 pop()は、スタックコンテナの最上位から要素をポップまたは削除するために使用されます。上からコンテンツが削除され、コンテナのサイズが1つ縮小されます。

構文

stack_name.pop();

パラメータ

関数はパラメータを受け入れません-

戻り値

この関数は何も返しません

入力

std::stack<int> stack1;
stack1.push(1);
stack1.push(2);
stack1.push(3);
stack1.pop();

出力

2 1

#include <iostream>
#include <stack>
using namespace std;
int main(){
   stack<int>stck;
   int Product = 1;
   stck.push(1);
   stck.push(2);
   stck.push(3);
   stck.push(4);
   stck.push(5);
   stck.push(6);
   while (!stck.empty()){
      Product = Product * stck.top();
      cout<<"\nsize of stack is: "<<stck.size();
      stck.pop();
   }
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

size of stack is: 6
size of stack is: 5
size of stack is: 4
size of stack is: 3
size of stack is: 2
size of stack is: 1

  1. C++での最大周波数スタック

    FreqStackと呼ばれる1つのスタックを実装したいとします。FreqStackには2つの関数があります- push(x)、これは整数xをスタックにプッシュします。 pop()、これはスタック内で最も頻繁な要素を削除して返します。同じ頻度の要素が複数ある場合は、スタックの最上位に最も近い要素が削除されて返されます。 したがって、入力が7、9、7、9、6、7などの要素をプッシュするようなものである場合、ポップ操作を4回実行すると、出力はそれぞれ7、9、7、6になります。 これを解決するには、次の手順に従います- 1つのマップcntを定義する 1つのマップstsを

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

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