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

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

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` は、一致するかどうかを調べるコレクション内の要素です。引数 `d` を `yourTesterFunction()` に渡して `c` と `d` が一致すれば、関数は `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` を持つ、待ち行列内の項目の数を返します。