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

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


RWTPtrHashSet<T>

RWTPtrHashSet<T> RWTPtrHashTable<T>

形式

#include <rw/tphset.h>
unsigned hashFun(const T&);
RWTPtrHashSet(hashFun) set;

注 - 標準 C++ ライブラリがない場合は、ここで説明しているインタフェースを使用してください。標準 C++ ライブラリがある場合は、クラスリファレンスの説明にあるインタフェースを使用してください。

説明

このクラスは、RWTPtrHashTable<T> の派生クラスです。この中の insert() 関数は、与えられた値のうち項目を 1 つしか挿入しないように上書きされています。したがって、コレクション内の各項目は、それぞれ互いに異なる値を持っています。

クラス RWTPtrHashTable<T> の場合と同様、ハッシュ関数をコンストラクタに用意しなければなりません。

クラス T には次のものが必要です。

持続性

なし

This examples exercises a set of RWCStrings.
#include <rw/tphset.h>
#include <rw/cstring.h>
#include <rw/rstream.h>

main()  {
  RWTPtrHashSet<RWCString> set(RWCString::hash);
  set.insert(new RWCString("one"));
  set.insert(new RWCString("two"));
  set.insert(new RWCString("three"));
  set.insert(new RWCString("one"));

  cout << set.entries() << endl;  // "3" を出力する

  set.clearAndDestroy();
  return 0;
}

プログラム出力:

3

公開コンストラクタ

RWTPtrHashSet<T>(unsigned (*hashFun)(const T&),
                 size_t buckets = RWDEFAULT_CAPACITY);

空のハッシュセットを作成します。第 1 引数は、型 T の項目に対するユーザー定義のハッシュ関数へのポインタです。テーブルは最初 buckets 個のバケットから構成されますが、メンバー関数 resize() で変更できます。

公開メンバー演算子

RWTPtrHashSet<T>&
Union(const RWTPtrHashSet<T>& h);

自分自身と h との和集合を計算し、自分自身を変更し、自分自身を返します。

RWTPtrHashSet<T>&
difference(const RWTPtrHashSet<T>& h);

自分自身と h との差集合を計算し、自分自身を変更し、自分自身を返します。

RWTPtrHashSet<T>&
intersection(const RWTPtrHashSet<T>& h);

自分自身と h との積集合を計算し、自分自身を変更し、自分自身を返します。

RWTPtrHashSet<T>&
symmetricDifference(const RWTPtrHashSet<T>& h);

自分自身と h との対称差集合を計算し、自分自身を変更し、自分自身を返します。

RWBoolean
isSubsetOf(const RWTPtrHashSet<T>& h) const;

自分自身が h の部分集合である場合、TRUE を返します。

RWBoolean
isProperSubsetOf(const RWTPtrHashSet<T>& h) const;

自分自身が h の真部分集合である場合、TRUE を返します。

RWBoolean
isEquivalent(const RWTPtrHashSet<T>& h) const;

自分自身と h が等しい場合、TRUE を返します。

RWBoolean
operator!=(const RWTPtrHashSet<T>& h) const;

自分自身と h が等しい場合、FALSE を返します。

void
apply(void (*applyFun)(T*, void*), void* d);

クラス RWTPtrHashTable<T> から継承した関数。

void
clear();

クラス RWTPtrHashTable<T> から継承した関数。

void
clearAndDestroy();

クラス RWTPtrHashTable<T> から継承した関数。

RWBoolean
contains(const T* a) const;

クラス RWTPtrHashTable<T> から継承した関数。

size_t
entries() const;

クラス RWTPtrHashTable<T> から継承した関数。

T*
find(const T* target) const;

クラス RWTPtrHashTable<T> から継承した関数。

void
insert(T* a);

クラス RWTPtrHashTable<T> から継承した関数で、与えられた値のオブジェクトを一度だけ挿入します。

RWBoolean
isEmpty() const;

クラス RWTPtrHashTable<T> から継承した関数。

size_t
occurrencesOf(const T* a) const;

クラス RWTPtrHashTable<T> から継承した関数。

T*
remove(const T* a);

クラス RWTPtrHashTable<T> から継承した関数。

size_t
removeAll(const T* a);

クラス RWTPtrHashTable<T> から継承した関数。

void
resize(size_t N);

クラス RWTPtrHashTable<T> から継承した関数。