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

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


RWOrdered

RWOrdered RWSequenceable RWCollection RWCollectable

形式

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

説明

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

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

接続性

多相

公開コンストラクタ

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 から再定義した関数。項目 targetisEqual である最初の項目を返します。等しい項目がなければ 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 から再定義した関数。項目 targetisEqual である項目の数を返します。

RWCollectable*
prepend(RWCollectable*);

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

void
push(RWCollectable* c);

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

RWCollectable*
pop();

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

virtual RWCollectable*
remove(const RWCollectable* target);

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

RWCollectable*
removeAt(size_t index);

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

virtual void
removeAndDestroy(const RWCollectable* target);

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

RWCollectable*
top() const;

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