stack クラス

[機能]

  スタックを保持します.STL コンテナの一部を利用して,特別な機能を持たせたクラスであり,コンテナアダプタと呼ばれています.Container は stack を実際に保持するコンテナであり,省略すると deque になります.なお,以下に示す関数において,一般に,push よりも,emplace を使ったほうが処理効率は良くなります.
template <class T, class Container = deque<T>> class stack		

[使用方法]
#include <stack>
using namespace std;
stack <T> 変数名;
   stack x;   // 空の stack
   stack x(y);   // stack y で初期化		
[メンバー関数等]

[演算子の多重定義]
= ==  <  <=  !=  >  >=		

[使用例]

  1. stack の使用方法です.
    #include <stdio.h>
    #include <stack>
    
    using namespace std;
    
    void print(stack<int> &q) {
    	if (q.empty())
    		printf("   stack は空です\n");
    	else
    		printf("   先頭の要素: %d\n", q.top());
    }
    
    int main()
    {
    	stack<int> s;
    					// push
    	printf("**push**\n");
    	s.push(1);
    	print(s);
    	s.push(3);
    	print(s);
    	s.push(2);
    	print(s);
    					// pop
    	printf("**pop**\n");
    	print(s);
    	s.pop();
    	print(s);
    	s.pop();
    	print(s);
    	s.pop();
    	print(s);
    
    	return 0;
    }
    			
    (出力)
    **push**
       先頭の要素: 1
       先頭の要素: 3
       先頭の要素: 2
    **pop**
       先頭の要素: 2
       先頭の要素: 3
       先頭の要素: 1
       stack は空です
    			
[参照]

vectorsetmultimaparraylistmapmultisetpriority_queuedequequeueforward_listunordered_mapunordered_multimapunordered_setunordered_multiset

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引