第86章 stackコンテナアダプタを使う


メモリなどでstackという言葉を聞いたことがあると思います。 STLにおけるstackは、コンテナアダプタです。stack自信にはコンテナを有していません。 dequeを利用しています。この時dequeを「基盤コンテナ」と呼ぶことがあります。 基盤コンテナにはこの他に、vector, listなどを利用することも可能です。



stack<int> st;
とすれば、基盤コンテナはdequeです。

vectorを基盤コンテナにしたい時は、

stack<int, vector<int> > st;
とします。

通常はdequeを基盤コンテナにします。 stackのメンバ関数にはpush, pop, size, empty, topがあります。 結局これらの関数は基盤コンテナの関数を利用しています。

では、サンプルを見てみましょう。

// stack01.cpp

#include <iostream>
#include <stack>

using namespace std;

int main()
{
    stack<int> st;
    int n;

    while (1) {
        cout << "正の整数(0で終了)---";
        cin >> n;
        if (n == 0)
            break;
        st.push(n);
    }
    cout << "入力が終了しました。" << endl;

    while (!st.empty()) {
        cout << st.top() << endl;
        st.pop();
    }
    return 0;
}
では、実行結果を見てみましょう。

pushしたものをpopで取り出しています。




[C++Index] [総合Index] [Previous Chapter] [Next Chapter]

Update Oct/12/2004 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。