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

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

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

## RWSlistCollectables

RWSlistCollectables RWSequenceable RWCollection RWCollectable

### 形式

      // Smalltalk typedef:
      typedef RWSlistCollectables LinkedList ;
      #include <rw/slistcol.h>
      RWSlistCollectables a;

### 説明

  このクラスは、キーでアクセスできない、順序付けられた要素の集合を表します。要素の重複は許可されています。要素の順序は、外部的に、つまり挿入および削除の順番で決まります。このクラスによって格納されるオブジェクトは、抽象基底クラス RWCollectable を継承しなければなりません。

  ターゲットとコレクション内の項目が一致するかどうかを検査するには、仮想関数 `isEqual()`が必要です (RWCollectable を参照してください)。

  このクラスは一重リンクリストとして実装されており、効率良く挿入や削除ができますが、一方向にしか効率良く動作しません。このクラスは、Smalltalk のクラス `LinkedList` に対応しています。

### 持続性

  多相

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

      RWSlistCollectables();

    空のリンクリストを作成します。

      RWSlistCollectables(RWCollectable* a);

    単一項目 `a` から成る順序付きコレクションを作成します。

### 公開メンバー演算子

      RWBoolean
      operator==(const RWSlistCollectables& s) const;

    自分自身と `s` が同じ数のメンバーを持ち、かつ自分自身内の各項目と `s` 内の同じインデックスの項目が `isEqual` な場合、`TRUE` を返します。

### 公開メンバー関数

      virtual RWCollectable*
      append(RWCollectable*);

    RWSequenceable から再定義した関数。コレクションの最後に項目を挿入し、その項目を返します。挿入が失敗すると NULL を返します。

      virtual void
      apply(RWapplyCollectable ap, void*);

    クラス RWCollection から再定義した関数。この関数は、コレクションの各メンバーに対して最初から最後のメンバーの順序でユーザー定義関数 `ap` を適用するよう、再定義されています。

      virtual RWCollectable*&
      at(size_t i);
      virtual const RWCollectable*
      at(size_t i) const;

    RWSequenceable から再定義した関数。インデックス `i` は 0 〜 (コレクション内の項目数 -1) の範囲になければなりません。範囲外にあると RWBoundsErr 型の例外が発生します。リンクリストとして実装されているこのクラスでは、上記の関数はすべての項目を走査しなければならないので、効率的ではありません。

      virtual RWspace
      binaryStoreSize() const;

    クラス RWCollection から継承した関数。

      virtual void
      clear();

    クラス RWCollection から再定義した関数。

      virtual void
      clearAndDestroy();

    クラス RWCollection から継承した関数。

      virtual int
      compareTo(const RWCollectable* a) const;

    RWCollectable から継承した関数。

      virtual RWBoolean
      contains(const RWCollectable* target) const;

    クラス RWCollection から継承した関数。

      RWBoolean
      containsReference(const RWCollectable* e) const;

    `e` が指す項目と同一の項目 (アドレス `e` を持つ項目) がリストにあれば `TRUE` を返します。

      virtual size_t
      entries() const;

    クラス RWCollection から再定義した関数。

      virtual RWCollectable*
      find(const RWCollectable* target) const;

    クラス RWCollection から再定義した関数。`target` と一致する最初の項目を返すか、一致する項目がなければ NULL を返します。

      RWCollectable*
      findReference(const RWCollectable* e) const;

    項目 `e` と同一の最初の項目 (アドレス `e` を持つ項目) を返します。同一の項目がなければ NULL を返します。

      virtual RWCollectable*
      first() const;

    クラス RWSequenceable から再定義した関数。リストの最初にある項目を返します。

      RWCollectable*
      get();

    リストの最初にある項目を取り除き、その項目を返します。

      virtual unsigned
      hash() const;

    クラス RWCollectable から継承した関数。

      virtual size_t
      index(const RWCollectable* c) const;

    クラス RWSequenceable から再定義した関数。項目 `c` と `isEqual` である最初の項目のインデックスを返します。このような項目がない場合、`PW_NPOS` を返します。

      virtual RWCollectable*
      insert(RWCollectable* c);

    クラス RWCollection から再定義した関数。コレクションの最後に項目を追加し、その項目を返します。挿入が失敗すると NULL を返します。

      void
      insertAt(size_t indx, RWCollectable* e);

    クラス RWSequenceable から再定義した関数。コレクションの位置 `indx` に新しい項目を追加します。以前、位置 `i` にあった項目は `i+1` に移動し、それ以降の項目も順次移動します。インデックス `indx` は、0 〜 (コレクションの項目数) の範囲になければなりません。範囲外にあると RWBoundsErr 型の例外が発生します。

      virtual RWClassID
      isA() const;

    クラス RWCollectable から再定義した関数。`__RWSLISTCOLLECTABLES` を返します。

      virtual RWBoolean
      isEmpty() const;

    クラス RWCollection から再定義した関数。

      virtual RWCollectable*
      last() const;

    クラス RWSequenceable から再定義した関数。コレクションの最後にある値を返します。

      virtual size_t
      occurrencesOf(const RWCollectable* target) const;

    クラス RWCollection から再定義した関数。項目 `target` と `isEqual` である項目の数を返します。

      size_t
      occurrencesOfReference(const RWCollectable* e) const;

    項目 `e` と同一の項目 (アドレス `e` を持つ項目) の数を返します。

      virtual RWCollectable*
      prepend(RWCollectable*);

    クラス RWSequenceable から再定義した関数。コレクションの最初に項目を追加し、その項目を返します。挿入が失敗すると `NULL` を返します。

      virtual RWCollectable*
      remove(const RWCollectable* target);

    クラス RWCollection から再定義した関数。項目 `target` と isEqual である最初の項目を取り除き、その項目を返します。等しい項目がなければ NULL を返します。

      virtual void
      removeAndDestroy(const RWCollectable* target);

    クラス RWCollection から継承した関数。

      RWCollectable*
      removeReference(const RWCollectable* e);

    項目 `e` と同一の最初の項目 (アドレス `e` を持つ項目) を取り除き、その項目を返します。同一の項目がなければ NULL を返します。

      virtual void
      restoreGuts(RWvistream&);
      virtual void
      restoreGuts(RWFile&);
      virtual void
      saveGuts(RWvostream&) const;
      virtual void
      saveGuts(RWFile&) const;

    クラス RWCollection から継承した関数。

      RWStringID
      stringID();

    (仮想関数として動作) クラス RWCollectable から継承した関数。