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

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

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

## RWTValDlistIterator<T>

### 形式

      #include<rw/tvdlist.h>
      RWTValDlist<T> dl;
      RWTValDlistIterator<T> itr(dl);

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

### 説明

  RWTValDlistIterator には、Tools.h++ 6.x コンテナ用に用意された反復子インタフェースとの互換性を持つ、Tools.h++ 7 標準ライブラリにもとづくコレクションへの反復子インタフェースが用意されています。

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

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

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

### 持続性

  なし

### 例

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

      int main(){
         RWTValDlist<RWCString> a;
         RWTValDlistIterator<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

### 公開コンストラクタ

      RWTValDlistIterator<T>(RWTValDlist<T>& s);

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

### 公開メンバー演算子

      RWBoolean
      operator()();

    自分自身を次の要素に進め、その値を返します。反復子がコンテナ内の最後の項目を越えた場合は、ブール型の `FALSE` に相当する NULL ポインタの要素を返します。

      RWBoolean
      operator++();

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

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

      RWBoolean
      operator+=(size_type n);

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

      RWBoolean
      operator--();

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

      RWBoolean
      operator-=(size_type n);

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

### 公開メンバー関数

      RWTValDlist<T>*
      container() const;

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

      RWBoolean
      findNext(const T& a);

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

      RWBoolean
      findNext(RWBoolean(*fn)(const T&, void*), void* d);

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

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

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

      T
      key();

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

      RWBoolean
      remove();

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

      RWBoolean
      removeNext(const T);

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

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

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

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

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

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

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