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

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

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

## RWTValSortedDlistIterator<T,C>

### 形式

      #include<rw/tvsrtdli.h>
      RWTValSortedDlist<T,C> dl;
      RWTValSortedDlistIterator<T,C> itr(dl);

### 標準 C++ ライブラリ依存

  > 注 - RWTValSortedDlistIterator には標準 C++ ライブラリが必要です。

### 説明

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

  RWTValSortedDlist に対する繰り返し順序は、コンテナに格納された値に適用されるため、使用する比較子オブジェクトに依存します。

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

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

### 持続性

  なし

### 例

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

      int main(){
         RWTValSortedDlist<RWCString, less<RWCString> > a;
         RWTValSortedDlistIterator<RWCString, less<RWCString> > itr(a);

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

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

         return 0;
      }

  #### プログラム出力

      John
      Mark
      Steve
      Steve

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

      RWTValSortedDlistIterator<T,C>(RWTValSortedDlist<T,C>&s);

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

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

      RWBoolean
      operator()();

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

      RWBoolean
      operator++();

    自分自身を次の要素に進めます。反復子が初期状態に戻された、あるいは作成されたばかりの場合、自分自身は最初の要素を参照します。反復の前に自分自身がリスト内の最後の値を参照した場合、自分自身はリセット値とは異なる未定義の値を指し、`FALSE` を返します。それ以外の場合は、`TRUE` を返します。注 : 後置インクリメント演算子は提供されていません。

      RWBoolean
      operator+=(size_type n);

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

      RWBoolean
      operator--(size_type n);

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

      RWBoolean
      operator-=(size_type n);

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

### 公開メンバー関数

      RWTValSortedDlist<T,C>*
      container() const;

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

      RWBoolean
      findNext(const T a);

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

      RWBoolean
      findNext(RWBoolean(*fn)(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` が見つかるまで自分自身を順方向に進め、その `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(RWTValSortedDlist<T,C>& l);

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