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

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


RWIdentityDictionary

RWIdentityDictionary RWHashDictionary RWSet RWHashTable ...
... RWCollection RWCollectable

形式

#include <rw/idendict.h>
// Smalltalk typedef:
typedef RWIdentityDictionary IdentityDictionary;
RWIdentityDictionary a;

説明

このクラスは、キーと値を対にして格納と取り出しを行うハッシュテーブルとして実装されます。このクラスは、クラス RWHashDictionary とよく似ています。異なるのは、項目を検索する際、等しい項目 (isEqual()TRUE) ではなくキーと同一の (同じアドレスを持つ) 項目が求められる点です。

キーと値は、どちらも抽象基底クラス RWCollectable から継承しなければなりません。

このクラスの反復子は、RWHashDictionaryIterator です。

持続性

なし

公開コンストラクタ

RWIdentityDictionary(size_t n = RWDEFAULT_CAPACITY);

n 個のハッシュバケットを持つ空の同一性ディクショナリを作成します。

公開演算子

RWBoolean
operator<=(const RWIdentityDictionary& t) const;

自分自身が t の一部分である場合、つまり、自分自身のすべての要素について、t 内に isEqual である要素がある場合に TRUE を返します。この演算子は、標準 C++ ライブラリ実装を使用してコンパイルしないかぎり存在しません。通常は RWHashDictionary から継承されます。


注 - 標準 C++ ライブラリが存在する状態で RWIdentitDictionary から継承する場合、この演算子を変更し、明示的に関数を呼び出すことをお薦めします。C++ の多重定義による解決方法では、継承されたクラスメンバーを対象とする、標準ライブラリが提供する大域演算子を選択します。これらの大域定義は、部分集合関係のような半順序付けには適していません。

公開メンバー関数

このクラスのユーザーインタフェースは、クラス RWHashDictionary と同一なので、ここでは再度記述しません。両クラスの相違は、等価ではなく同一性によりキーを検索することと、仮想関数 isA()RWIdentityDictionary のクラス ID、__RWIDENTITYDICTIONARY を返すことだけです。