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

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


RWDlistCollectables

RWDlistCollectables RWSequenceable RWCollection RWCollectable

形式

#include <rw/dlistcol.h>
RWDlistCollectables a;

説明

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

このクラスは、二重リンクリストとして実装されているため、効率的な挿入や削除、さらに双方向の移動が可能です。

持続性

多相

公開コンストラクタ

RWDlistCollectables();

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

RWDlistCollectables (RWCollectable* a);

単一項目 a から成るリンクリストを作成します。

公開メンバー演算子

RWBoolean
operator==(const RWDlistCollectables& d) const;

自分自身と d が同じ項目数を持ち、自分自身内の各項目と d 内の同じ位置の対応する項目が isEqual であれば、TRUE を返します。

公開メンバー関数

virtual Collectable*
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 から再定義した関数。インデックスは、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 から再定義した関数。項目 targetisEqual である最初の項目を返すか、等しい項目がなければ 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 から再定義した関数。項目 cisEqual である最初の項目のインデックスを返します。等しい項目がなければ RW_NPOS を返します。

virtual RWCollectable*
insert(RWCollectable* c);

クラス RWCollection から再定義した関数。コレクションの最後に項目 c を追加し、その項目を返します。追加できなければ NULL を返します。

void
insertAt(size_t indx, RWCollectable* e);

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

virtual RWClassID
isA() const;

クラス RWCollectable から再定義した関数で、__RWLISTCOLLECTABLES を返します。

virtual RWBoolean
isEmpty() const;

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

virtual RWCollectable*
last() const;

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

virtual size_t
occurrencesOf(const RWCollectable* target) const;

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

size_t
occurrencesOfReference(const RWCollectable* e) const;

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

virtual RWCollectable*
prepend(RWCollectable*);

クラス RWSequenceable から再定義した関数。コレクションの最初に項目を追加し、その項目を返します。追加できなければ NULL を返します。

virtual RWCollectable*
remove(const RWCollectable* target);

クラス RWCollection から再定義した関数。項目 targetisEqual である最初の項目を取り除き、それを返します。等しい項目がなければ 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 から継承した関数。