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

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

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

## RWGStack(type)

### 形式

      #include <rw/gstack.h>
      declare(RWGStack,type)

      RWGStack(type) a ;

### 説明

  このクラスは順序付き要素の集まりを表します。外部キーではアクセスできません。後入れ先出し (LIFO) 方式の順編成リストで、挿入と削除はリストの先頭で行います。したがって、要素の順番は外部的に挿入の順番で決まります。要素の重複は許可されており、一重リンクリストとして実装されます。この型のオブジェクトは、標準 C++ ヘッダファイル `<generic.h>` で定義されたマクロを使用して宣言されます。コレクション内のある特定の項目を見つけるには、一貫する方法で「等値」であるかどうかを調べるユーザー提供の大域テスト関数が必要です。この関数には次のプロトタイプが必要です。

          RWBoolean yourTesterFunction(const type* c, const void* d);

  引数 `c` は、一致するかどうかを調べるコレクション内の要素です。引数 `d` を `yourTesterFunction()` に渡して `c` と `d` が一致すれば、関数は `TRUE` を返します。

  記述を簡単にするため、テスト関数に対して次のような仮想の typedef が使用されています。

          typedef RWBoolean (*yourTester)(const type*, const void*);

### 持続性

  なし

### 公開コンストラクタ

      RWGStack(type)();

    空のスタックを作成します。

      RWGStack(type)(type* a);

    1 つの項目 `a` から成るスタックを作成します。

      RWGStack(type)(const RWGStack(type)& a);

    コピーコンストラクタ。`a` のシャローコピーを作成します。

### 代入演算子

      void
      operator=(const RWGStack(type)& a);

    代入演算子。`a` のシャローコピーを作成します。

### 公開メンバー関数

      void
      clear();

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

      RWBoolean
      contains(yourTester t, const void* d) const;

    ユーザー定義関数 `t` が、`d` と一致すると認めた項目が、スタックにあれば `TRUE` を返します。

      RWBoolean
      containsReference(const type* e) const;

    アドレス `e` を持つ項目がスタックにあれば、`TRUE` を返します。

      size_t
      entries() const;

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

      RWBoolean
      isEmpty() const;

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

      size_t
      occurrencesOf(yourTester t, const void* d) const;

    ユーザー提供関数 `t` が、`d` と一致するとみなした、スタック内の項目の数を返します。

      size_t
      occurrencesOfReference(const type* e) const;

    アドレス `e` を持つスタック内の項目の数を返します。

      type*
      pop();

    スタックの先頭にある項目を取り除き、その項目を返します。スタックが空なら NULL を返します。

      void
      push(type* a);

    スタックの先頭に項目を追加します。

      type*
      top() const;

    スタックの先頭にある項目を返します。スタックが空であれば NULL を返します。