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

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


RWGQueue(type)

形式

#include <rw/gqueue.h>
declare(RWGQueue, type)

RWGQueue(type) a ;

説明

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

    RWBoolean yourTesterFunction(const type* c, const void* d);
引数 c は、一致するかどうかを調べるコレクション内の要素です。引数 dyourTesterFunction() に渡して cd が一致すれば、関数は TRUE を返します。

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

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

持続性

なし

公開コンストラクタ

RWGQueue(type)();

空の待ち行列を作成します。

RWGQueue(type)(type* a);

1 つの項目 a から成る待ち行列を作成します。

RWGQueue(type)(const RWGQueue(type)& q);

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

代入演算子

void
operator=(const RWGQueue(type)& q);

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

公開メンバー関数

type*
append(type* a);

a を待ち行列の最後に追加し、それを返します。挿入が失敗すれば NULL を返します。

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;

待ち行列にある項目の数を返します。

type*
first() const;

待ち行列の最初の項目を返します。待ち行列が空なら NULL を返します。

type*
get();

待ち行列の最初の項目を返し、それを取り除きます。待ち行列が空なら NULL を返します。

RWBoolean
isEmpty() const;

待ち行列内に項目がまったくなければ TRUE を、あれば FALSE を返します。

type*
insert(type* a);

a を引数として append(type*) を呼び出します。

type*
last();

待ち行列内の最後の項目 (最後に挿入された項目) を返します。待ち行列が空なら NULL を返します。

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

ユーザー提供関数 t が、d と一致するとみなした、待ち行列内の項目の数を返します。

size_t
occurrencesOfReference(const type* e) const;

アドレス e を持つ、待ち行列内の項目の数を返します。