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

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


RWTStack<T,C>

形式

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

説明

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

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

パラメータ 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;

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