バナーをクリックすれば目次に戻ります
Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.
RWSet
RWSet RWHashTable RWCollection RWCollectable
typedef RWSet Set; // Smalltalk typedef. #include <rw/rwset.h> RWSet h ;
このクラスによって格納されるオブジェクトは、仮想関数 hash() および isEqual() を正しく定義した、抽象基底クラス RWCollectable を継承しなければなりません (RWCollectable を参照してください)。hash() は同じハッシュ値を持つオブジェクトを見つけるのに使用し、isEqual() は両方のオブジェクトが同じかどうかを確認するのに使用します。
コレクションのメンバーで isEqual(c) が TRUE を返すものがあれば、項目 c は "コレクション内に既存である" とみなされます。この場合、メッセージ insert(c) では項目を追加せず、項目を重複させません。
このクラスの反復子は、RWSetIterator です。
RWSet (size_t n = RWDEFAULT_CAPACITY);
RWSet (const RWSet & h);
virtual ~RWSet();
virtual void apply(RWapplyCollectable ap, void*);
RWBoolean operator==(const RWSet& h);
RWBoolean operator!=(const RWSet& h);
RWBoolean operator<=(const RWSet& h);
注 - 標準 C++ ライブラリが存在する状態で RWBTree から継承する場合、この演算子を変更し、明示的に関数を呼び出すことをお薦めします。C++ の多重定義による解決方法では、継承されたクラスメンバーを対象とする、標準ライブラリが提供する大域演算子を選択します。これらの大域定義は、部分集合関係のような半順序付けには適していません。
RWBoolean operator<(const RWSet& h);
RWSet& operator*=(const RWSet& h);
virtual void apply(RWapplyCollectable ap, void*);
virtual RWspace binaryStoreSize() const;
virtual void clear();
virtual void clearAndDestroy();
virtual int compareTo(const RWCollectable* a) const;
virtual RWBoolean contains(const RWCollectable* target) const;
virtual size_t entries() const;
virtual RWCollectable* find(const RWCollectable* target) const;
virtual unsigned hash() const;
virtual RWCollectable* insert(RWCollectable* c);
virtual RWClassID isA() const;
virtual RWBoolean isEmpty() const;
virtual RWBoolean isEqual(const RWCollectable* a) const;
void intersectWith(const RWSet& h, RWSet& ret) const;
virtual size_t occurrencesOf(const RWCollectable* target) const;
virtual RWCollectable* remove(const RWCollectable* target);
virtual void removeAndDestroy(const RWCollectable* target);
void resize(size_t n = 0);
virtual void restoreGuts(RWvistream&); virtual void restoreGuts(RWFile&); virtual void saveGuts(RWvostream&) const; virtual void saveGuts(RWFile&) const;
RWStringID stringID();