Tools.h++ 7.0 クラスライブラリ・リファレンスマニュアル: RWTPtrHashSet

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

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 には次のものが必要です。

  - 等価の意味の定義 `(T::operator==(const 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> から継承した関数。