スタック(stack)とキュー(Queue)の使い方
=============================================================================
C++の標準ライブラリにあるスタックとキューの使い方
=============================================================================
Cにはなかったのですが、C++には標準ライブラリにスタックとキューが用意されています。
※Cでスタックを自分で実装してみた例は「スタックを実装してみる」をご参照下さい。
1 スタック(stack)
C++でスタックを使う時はヘッダーファイルstack.hをincludeしておく。
スタックのメソッド(関数)には、以下のものしかない。
empty → 空かどうかチェック
pop → 要素を末尾から削除
push → 要素を末尾に追加
top → 末尾の要素を取得
size → 要素数を取得
(stack.cpp)
0〜4をスタックにつみ、スタックの要素数を表示し、スタックトップから1個づつ取り出して
表示する。
#include <stack> using namespace std; int main(void) { stack<int> S; int i; for(i=0; i<5;++i) { S.push(i); } printf("size: %d\n",S.size()); while(S.empty() == false) { printf("%d\n",S.top()); S.pop(); } return 0; }
C++でキューを使う場合は、queue.hをincludeしておく。
キューで使えるメソッド(関数)は以下のものだけです。
empty → 空かどうかチェック
pop → 要素を先頭から削除
push → 要素を末尾に追加
back → 末尾の要素を取得
front → 先頭の要素を取得
size → 要素数を取得
(queue.cpp)
#include <queue> using namespace std; int main(void) { queue<int> Q; int i; for(i=0; i<5;++i) { Q.push(i); } printf("size: %d\n",Q.size()); printf("end:%d\n",Q.back()); while(Q.empty() == false) { printf("%d\n",Q.front()); Q.pop(); } return 0; }