バナーをクリックすれば目次に戻ります
Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.
RWTPtrHashMultiSetIterator<T,H,EQ>
#include<rw/tphasht.h> RWTPtrHashMultiSet<T,H,EQ> m; RWTPtrHashMultiSet<T,H,EQ> itr(m);
注 - 標準 C++ ライブラリがある場合は、ここで述べるインタフェースを使用します。標準 C++ ライブラリがない場合は、付録 A に記載する RWTPtrHashTableIterator 用インタフェースを使用してください。
RWTPtrHashMultiSet に対する繰り返しは擬似ランダムであり、基礎となるハッシュテーブルの容量と使用するハッシュ関数によって決まります。連続要素間で唯一有用な関係は、同等オブジェクト EQ によって等価と定義された要素が隣接したままであることです。
この反復子が参照する現在の項目は、作成後も、reset() の呼び出し操作後も、定義されていません。反復子は、前置インクリメントか operator() を用いて進められた後に有効になります。
operator++ と operator() の場合は、最後の要素を越えて反復すると、ブール型の FALSE に相当する値を返します。一度この状態に達してからも増分し続けると、reset() が呼び出されるまで、FALSE に相当する値を返します。
#include<rw/tphasht.h> #include<iostream.h> #include<rw/cstring.h> struct silly_h{ unsigned long operator()(RWCString x) const { return x.length() * (long)x(0); } }; int main(){ RWTPtrHashMultiSet<RWCString,silly_h,equal_to<RWCString> > age; RWTPtrHashMultiSetIterator <RWCString,silly_h,equal_to<RWCString> > itr(age); age.insert(new RWCString("John")); age.insert(new RWCString("Steve")); age.insert(new RWCString("Mark")); age.insert(new RWCString("Steve")); for(;++itr;) cout << *itr.key() << endl; return 0; } |
John Mark Steve Steve |
RWTPtrHashMultiSetIterator<T,H,EQ> (RWTPtrHashMultiSet<T,H,EQ>&h);
T* operator()();
RWBoolean operator++();
RWTPtrHashMultiSet<T,H,EQ>* container() const;
T* key() const;
void reset(); void reset(RWTPtrHashMultiSet<T,H,EQ>& h);