バナーをクリックすれば目次に戻ります
Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.
RWTPtrMultiMapIterator<K,T,C>
#include<rw/tpmmap.h> RWTPtrMultiMap<K,T,C> map; RWTPtrMultiMapIterator<K,T,C> itr(map);
注 - RWTPtrMultiMapIterator には標準 C++ ライブラリが必要です。
RWTPtrMultiMap に対する繰り返し順序は、格納された関連付けのキー値に適用されるため、コンテナの比較子オブジェクトに依存します。
この反復子が参照する現在の項目は、作成後も、reset() の呼び出し後も定義されていません。反復子は、前置インクリメントか operator() を用いて進められた後に有効になります。
operator++ と operator() の場合は、最後の要素を越えて反復すると、ブール型の FALSE に相当する値を返します。一度この状態に達してからも増分し続けると、reset() が呼び出されるまで、FALSE に相当する値を返します。
#include<rw/tpmmap.h> #include<iostream.h> #include<rw/cstring.h> #include<utility> int main(){ RWTPtrMultiMap<RWCString,int,less<RWCString> > age; RWTPtrMultiMapIterator<RWCString,int,less<RWCString> > itr(age); age.insert(new RWCString("John"), new int(30)); age.insert(new RWCString("Steve"),new int(17)); age.insert(new RWCString("Mark"), new int(24)); age.insert(new RWCString("Steve"),new int(24)); for(;itr();) cout << *itr.key() << "\'s age is " << *itr.value() << endl; return 0; } |
John's age is 30 Mark's age is 24 Steve's age is 17 Steve's age is 24 |
RWTPtrMultiMapIterator<K,T,C>(const RWTPtrMultiMap<K,T,C>& m);
K* operator()();
RWBoolean operator++();
注 - 後置インクリメント演算子は提供されていません。
RWTPtrMultiMap<K,T,C>* container() const;
K* key() const;
void reset(); void reset(RWTPtrMultiMap<K,T,C>& h);
T* value();