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

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


RWGDlistIterator(type)

形式

#include <rw/gdlist.h>
declare(RWGDlist, type)
RWGDlist(type) a;
RWGDlistIterator(type) I(a) ;

説明

クラス RWGDlist(type) の反復子で、二重リンクリストのすべての要素に順次アクセスできます。各要素にはどちらの方向にも順番にアクセスできます。すべての Rogue Wave 反復子と同様に、作成直後の "現在の項目" は未定義で、operator() か他の有効な操作によって、ユーザーが定義する必要があります。

反復子がコレクションの最後を越えると、反復子は無効になります。さらに使用し続けると、予期できない結果をもたらします。

記述を簡単にするため、次のような仮想の typedef が使用されています。この関数については、RWGDlist(type) を参照してください。

    typedef RWBoolean (*yourTester)(const type*, const void*);

接続性

なし

クラス RWGDlist(type) の例を参照してください。

公開コンストラクタ

RWGDlistIterator(type)( RWGDlist(type)& list);

RWGDlist(type) list の反復子を作成します。作成直後の反復子の位置は不定です。

公開メンバー演算子

type*
operator()();

反復子を次の項目に進め、その項目を返します。コレクションの最後に達すると NULL を返します。

void
operator++();

反復子を 1 項目進めます。

void
operator--();

反復子を 1 項目戻します。

void
operator+=(size_t n);

反復子を n 項目進めます。

void
operator-=(size_t n);

反復子を n 項目戻します。

公開メンバー関数

RWBoolean
atFirst() const;

反復子がリストの最初にあれば TRUE を、なければ FALSE を返します。

RWBoolean
atLast() const;

反復子がリストの最後にあれば TRUE を、なければ FALSE を返します。

type*
findNext(yourTester t,const type* d);

関数 t が、d と一致するとみなした次の項目に、反復子を進め、その項目を返します。一致する項目がなければ NULL を返し、反復子の位置は不定になります。

type*
findNextReference(const type* e);

アドレス e を持つ次の項目へ反復子を進め、その項目を返します。そのような項目がなければ NULL を返し、反復子の位置は不定になります。

type*
insertAfterPoint(type* a);

反復子の現在位置の後に項目 a を追加します。反復子の位置は変わりません。

type*
key() const;

反復子の現在位置にある項目を返します。

type*
remove();

現在指している位置にある項目を取り除き、その項目を返します。その後、反復子はリスト内で直前の項目の位置に置かれます。

type*
removeNext(yourTester t, const type* d);

関数 t が、d と一致するとみなした次の項目に、反復子を移動し、その項目を取り除いて返します。一致する項目がなければ NULL を返し、反復子の位置は不定になります。

type*
removeNextReference(const type* a);

アドレス e を持つ次の項目に反復子を移動し、その項目を取り除いて返します。そのような項目がなければ NULL を返し、反復子の位置は不定になります。

void
reset();

反復子を初期状態にリセットします。

void
toFirst();

反復子をリストの最初の項目に移動します。

void
toLast();

反復子をリストの最後の項目に移動します。