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

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


RWTValSlistIterator<T>

形式

#include<rw/tvslist.h>
RWTValSlist<T> dl;
RWTValSlistIterator<T> itr(dl);

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

説明

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

RWTValSlist に対する反復順序は、コンテナに値が挿入された順序に依存します。

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

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

持続性

なし

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

int main(){
   RWTValSlist<RWCString> a;
   RWTValSlistIterator<RWCString> itr(a);

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

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

   return 0;
}

プログラム出力

John
Steve
Mark
Steve

公開コンストラクタ

RWTValSlistIterator<T>(RWTValSlist<T>& s);

片方向リンクリスト s の反復子を作成します。反復子は、未定義状態から始まり、最初の要素がアクセス可能になる前まで進める必要があります。

公開メンバー演算子

RWBoolean
operator()();

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

RWBoolean
operator++();

自分自身を次の要素に進めます。反復子が初期状態に戻された、あるいは作成されたばかりの場合、自分自身は最初の要素を参照します。反復の前に自分自身がリスト内の最後の値を参照した場合、自分自身は (取り消し値とは異なる) 未定義の値を参照し、FALSE を返します。それ以外の場合は、TRUE を返します。


注 - 後置インクリメント演算子は提供されていません。
RWBoolean
operator+=(size_type n);

operator++ メンバー関数が n 回適用されたのと同様に機能します。

RWBoolean
operator--();

自分自身を直前の要素の後ろに移動します。反復子が初期状態に戻された、あるいは作成されたばかりの場合、この演算子は FALSE を返します。それ以外の場合は、TRUE を返します。自分自身が最初の要素を参照する場合は、初期状態になります。自分自身がリストの最後の値を越えて反復した場合は、リストの最後の項目を参照します。注 : 後置インクリメント演算子は提供されていません。

RWBoolean
operator-=(size_type n);

operator-- メンバー関数が n 回適用されたのと同様に機能します。

公開メンバー関数

RWTValSlist<T>*
container() const;

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

RWBoolean
findNext(const_reference a);

(t == a)TRUE になるような最初の要素 t が見つかるまで順方向に自分自身を進めます。そのような要素が見つからなかった場合は TRUE を返し、それ以外の場合は FALSE を返します。

RWBoolean
findNext(RWBoolean(*fn)(const_reference, void*), void* d);

((*fn)(t,d))TRUE になるような最初の要素 t が見つかるまで順方向に自分自身を進めます。fn が指すユーザー定義テスター関数は、次のプロトタイプを持っていなければなりません。

   bool yourTester(const_reference a, void* d);

クライアントデータは、パラメタ d を通して渡すことができます。そのような要素が見つからなかった場合は TRUE を返し、それ以外の場合は FALSE を返します。

void
insertAfterPoint(T* p);

自分自身が参照する要素の直後のコンテナにポインタ p を挿入します。

T
key();

自分自身が参照する格納された値を返します。

RWBoolean
remove();

自分自身が参照する値をコレクションから削除します。削除が正常に行われた場合は TRUE を返し、それ以外の場合は FALSE を返します。

RWBoolean
removeNext(const T);

(t == a)TRUE になるような最初の要素 t が見つかるまで順方向に自分自身を進め、その t を削除します。そのような要素が見つかって削除された場合は TRUE を返し、それ以外の場合は FALSE を返します。

RWBoolean
removeNext(RWBoolean(*fn)(T, void*), void* d);

((*fn)(t,d))TRUE になるような最初の要素 t が見つかるまで順方向に自分自身を進め、その t を削除します。fn が指すユーザー定義テスター関数は、次のプロトタイプを持っていなければなりません。

   bool yourTester(const T a, void* d);

クライアントデータは、パラメタ d を通して渡すことができます。そのような要素が見つかって削除された場合は TRUE を返し、それ以外の場合は FALSE を返します。

void
reset();
void
reset(RWTValSlist<T>& l);

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