パソコン活用研究シリコンバレー(C、C++、の活用研究)

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

2 キュー(Queue)

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;
 }

 


TopPage