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

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 から再定義した関数。項目 cisEqual である最初の項目のインデックスを返します。このような項目がない場合、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 から再定義した関数。項目 targetisEqual である項目の数を返します。

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