スタック(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;
}