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

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


RWTValHashSetIterator<T,H,EQ>

形式

#include<rw/tvhset.h>
RWTValHashSet<T,H,EQ> m;
RWTValHashSetIterator<T,H,EQ> itr(m);

注 - 標準 C++ ライブラリがある場合は、ここで述べるインタフェースを使用します。標準 C++ ライブラリがない場合は、付録 A に記載する RWTValHashSetIterator 用インタフェースだけを使用してください。

説明

Tools.h++ 7 の RWTValHashSetIterator には、Tools.h++ 6.x に付属するコンテナ反復子との下位互換性を持つ、RWTValHashSetIterator への反復子インタフェースが用意されています。

RWTValHashSet に対する繰り返しは擬似ランダムであり、基礎となるハッシュテーブルの容量と使用するハッシュ関数によって決まります。連続要素間で唯一有用な関係は、同等オブジェクト EQ によって等価と定義された要素が隣接したままであることです。

この反復子が参照する現在の項目は、作成後も、reset() の呼び出し後も定義されていません。反復子は、前置インクリメントか operator() を用いて進められた後に有効になります。

operator++operator() の場合は、最後の要素を越えて反復すると、ブール型の FALSE に相当する値を返します。一度この状態に達してからも増分し続けると、reset() が呼び出されるまで、FALSE に相当する値を返します。

持続性

なし

#include<rw/tvhset.h>
#include<rw/cstring.h>
#include<iostream.h>

struct silly_h{
   unsigned long operator()(const RWCString& x) const
   { return x.length() * (long)x(0); }
};

int main(){
   RWTValHashSet <RWCString, silly_h,equal_to<RWCString> > age;
   RWTValHashSetIterator
     <RWCString, silly_h, equal_to<RWCString > > itr(age);

   age.insert("John");
   age.insert("Steve");
   age.insert("Mark");

//二重挿入が拒絶された
   age.insert("Steve");

   for(;itr();) cout << itr.key() << endl;

   return 0;
}

プログラム出力 (必ずしもこの順にはなりません)

John
Steve
Mark

公開コンストラクタ

RWTValHashSetIterator<T,H,EQ> (RWTValHashSet<T,H,EQ>&h);

ハッシュセット h の反復子を作成します。反復子は、未定義状態から始まり、最初の要素がアクセス可能になる前まで進める必要があります。

公開メンバー演算子

RWBoolean
operator()();

自分自身を次の要素に進めます。反復子がコンテナ内の最後の項目を越えた場合は FALSE を返し、それ以外の場合は TRUE を返します。

RWBoolean
operator++();

自分自身を次の要素に進めます。反復子が初期状態に戻された、あるいは作成されたばかりの場合、自分自身は最初の要素を参照します。反復の前に自分自身がマルチセット内の最後の関連付けを参照した場合、自分自身は未定義の値を参照し、FALSE を返します。それ以外の場合は、TRUE を返します。


注 - 後置インクリメント演算子は提供されていません。

公開メンバー関数

RWTValHashSet<T,H,EQ>*
container() const;

反復されるコレクションへのポインタを返します。

T
key() const;

現在自分自身が指す値を返します。

void
reset();
void
reset(RWTValHashSet<T,H,EQ>& h);

前に進められた反復子がコレクションの最初の要素を参照できるように、反復子を初期状態に戻します。引数なしで reset() を使用すると、現在のコンテナ上の反復子が初期状態に戻されます。reset()RWTValHashSet に使用すると、そのコンテナ上の反復子が初期状態に戻されます。