Tools.h++ 7.0 クラスライブラリ・リファレンスマニュアル: RWTStack

バナーをクリックすれば目次に戻ります

Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.

## RWTStack<T,C>

### 形式

      #include <rw/tstack.h>
      RWTStack<T, C> stack;

### 説明

  このクラスは、値のスタックを保守します。スタックに挿入されるオブジェクトの型がパラメータ化されるだけでなく、スタックの実装もパラメータ化されます。

  パラメータ `T` はスタック内のオブジェクトの型 (クラスまたは組み込み型) を表します。クラス T には次のものが必要です。

  - コピーの意味の定義 (`T::T(const T&)` または同等のもの)
  - 代入の意味の定義 (`T::operator=(const T&)` または同等のもの)
  - その他、クラス `C` が必要とする意味の定義

  パラメータ `C` は実装に使用するクラスを表します。RWTValOrderedVector<T> か RWTValDlist<T> のどちらかを選んでください。クラス RWTValSlist<T> も使用できますが、一重リンクリストはリストの最後の項目を取り除く場合 (関数 `pop()`) に、その 1 つ前の項目を見つけるためにリストを検索する必要があるため、効率が悪くなるので注意してください。

### 持続性

      なし

### 例

  次の例では、順序付きベクトルとして実装されている `int` のスタックを処理しています。

      #include <rw/tstack.h>
      #include <rw/tvordvec.h>
      #include <rw/rstream.h>

      main() {
        RWTStack<int, RWTValOrderedVector<int> > stack;

        stack.push(1);
        stack.push(5);
        stack.push(6);

        while (!stack.isEmpty())
          cout << stack.pop() << endl;
        return 0;
      }

  #### プログラム出力:

      6
      5
      1

### 公開メンバー関数

      void
      clear();

    スタックからすべての項目を取り除きます。

      size_t
      entries() const;

    現在、スタックにある項目の数を返します。

      RWBoolean
      isEmpty() const;

    スタックに項目がまったくなければ `TRUE` を、あれば `FALSE` を返します。

      void
      push(T a);

    スタックの先頭に項目 `a` をプッシュします。

      T
      pop();

    スタックの先頭にある項目をポップします (取り除いて返します)。スタックに項目が存在しないと `TOOL_INDEX` 型の例外が発生します。

      T
      top() const;

    スタックの先頭にある項目を返します (ただし、取り除きません)。