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

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

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

## RWOrdered

RWOrdered RWSequenceable RWCollection RWCollectable

### 形式

      #include <rw/ordcltn.h>
      RWOrdered a;

### 説明

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

  このクラスはポインタのベクトルとして実装され、リンクリストクラス RWSlistCollectables や RWDlistCollectables よりも効率良くコレクションを走査しますが、コレクションの途中に項目を挿入するときは、時間がかかります。

### 接続性

  多相

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

      RWOrdered(size_t size = RWDEFAULT_CAPACITY);

    初期容量で RWOrdered を作成します。

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

      RWBoolean
      operator==(const RWOrdered& od) const;

    自分自身内のすべての項目について、`od` 内の対応するインデックスの項目が `isEqual` ならば、`TRUE` を返します。両方のコレクションは、同じ数のメンバーを持っていなければなりません。

      RWCollectable*&
      operator[](size_t i);

    コレクション内の `i` 番目の要素を返します。`i` が範囲外にあると RWBoundsErr 型の例外が発生します。この関数の結果は左辺値として使用できます。

      RWCollectable*&
      operator()(size_t i);

    コレクション内の `i` 番目の要素を返します。ヘッダファイル `ordcltn.h` を取り込む前に前処理マクロ `RWBOUNDS_CHECK` を定義することで、境界検査を行います。この場合、`i` が範囲外であれば、RWBoundsErr 型の例外が発生します。この関数の結果は左辺値として使用できます。

### 公開メンバー関数

      virtual RWCollectable*
      append(RWCollectable*);

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

      virtual void
      apply(RWapplyCollectable ap, void* x);

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

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

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

      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 から継承した関数。

      virtual size_t
      entries() const;

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

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

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

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

    クラス RWSequenceable から再定義した関数。コレクション内の最初の項目を返します。

      virtual unsigned
      hash() const;

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

      virtual size_t
      index(const RWCollectable*) const;

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

      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 から再定義した関数で、`__RWORDERED` を返します。

      virtual RWBoolean
      isEmpty() const;

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

      virtual RWBoolean
      isEqual(const RWCollectable* a) const;

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

      virtual RWCollectable*
      last() const;

    クラス RWSequenceable から再定義した関数。コレクション内の最後の項目を返します。

      virtual size_t
      occurrencesOf(const RWCollectable* target) const;

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

      RWCollectable*
      prepend(RWCollectable*);

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

      void
      push(RWCollectable* c);

    クラス RWSlistCollectablesStack のスタックの代替実装です。項目 `c` は、コレクションの最後に置かれます。

      RWCollectable*
      pop();

    クラス RWSlistCollectablesStack のスタックの代替実装です。コレクションの最後の項目を取り除き、それを返します。コレクション内に項目がなければ NULL を返します。

      virtual RWCollectable*
      remove(const RWCollectable* target);

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

      RWCollectable*
      removeAt(size_t index);

    コレクションの中の位置 `index` にある項目を削除し、それを返します。

      virtual void
      removeAndDestroy(const RWCollectable* target);

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

      RWCollectable*
      top() const;

    クラス RWSlistCollectablesStack のスタックの代替実装です。コレクションの最後の項目を返します。コレクション内に項目がなければ NULL を返します。