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

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 は、一致するかどうかを調べるコレクション内の要素です。引数 dyourTesterFunction() に渡して cd が一致すれば、関数は 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 を返します。