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

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


RWTPtrSlistIterator<T>

形式

#include <rw/tpslist.h>
RWTPtrSlist<T> list;
RWTPtrSlistIterator<T> iterator(list);

注 - 標準 C++ ライブラリがない場合は、ここで説明しているインタフェースを使用してください。標準 C++ ライブラリがある場合は、クラスリファレンスの説明にあるインタフェースを使用してください。

説明

クラス RWTPtrSlist<T> の反復子で、一重リンクのパラメータ化されたリストのすべての要素に順次アクセスできます。各要素には、最初から最後の順序でアクセスします。

すべての RogueWave 反復子と同様に、作成直後の "現在の項目" は未定義で、operator() か他の有効な操作によってユーザーが定義する必要があります。

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

持続性

なし

公開コンストラクタ

RWTPtrSlistIterator<T>(RWTPtrSlist<T>& c);

リスト c で使用する反復子を作成します。

公開メンバー演算子

RWBoolean
operator++();

反復子を次の項目に進めて TRUE を返します。コレクションの最後に達すると FALSE を返し、反復子の位置は不定となります。

RWBoolean
operator+=(size_t n);

反復子を n 項目進めて TRUE を返します。コレクションの最後に達すると FALSE を返し、反復子の位置は不定になります。

T*
operator()();

反復子を次の項目に進めて、それへのポインタを返します。コレクションの最後に達すると NULL を返し、反復子の位置は不定になります。

公開メンバー関数

RWTPtrSlist<T>*
container() const;

反復子を使用しているコレクションへのポインタを返します。

T*
findNext(const T* a);

オブジェクト a と等しい最初の要素へ反復子を進め、それへのポインタを返します。等しい項目がなければ NULL を返し、反復子の位置は不定になります。等しいかどうかは、型 T に対するクラス定義の等価演算子で判定します。

T*
findNext(RWBoolean (*testFun)(T*, void*), void*);

テスト関数 testFunTRUE を返す最初の要素に反復子を進め、それへのポインタを返します。そのような項目がなければ NULL を返し、反復子の位置は不定になります。

void
insertAfterPoint(T* a);

当該コレクション内で反復子の現在位置の直後に、オブジェクト a を挿入します。反復子の現在の位置は変わりません。

T*
key() const;

反復子の現在位置にあるオブジェクトへのポインタを返します。反復子が無効であれば、結果は不定になります。

T*
remove();

当該コレクションから反復子の現在位置にあるオブジェクトを取り除き、そのオブジェクトを返します。その後、反復子は取り除いた要素の直前の要素の位置に置かれます。失敗すると NULL を返し、反復子の位置は不定になります。この関数は、一重リンクリストではあまり効率的ではありません。

T*
removeNext(const T* a);

オブジェクト a と等しい最初の要素に反復子を進め、その要素を取り除いて返します。その後、反復子は取り除いた要素の直前の要素の位置に置かれます。処理が失敗すると NULL を返し、反復子の位置は不定になります。等しいかどうかは、型 T に対するクラス定義の等価演算子で判定します。

T*
removeNext(RWBoolean (*testFun)(T*, void*), void*);

テスト関数 testFunTRUE を返す最初の要素に反復子を進め、その要素を取り除いて返します。その後、反復子は取り除いた要素の直前の要素の位置に置かれます。処理が失敗すると NULL を返し、反復子の位置は不定になります。

void
reset();

反復子を作成直後の状態に戻します。

void
reset(RWTPtrSlist<T>& c);

反復子を、コレクション c について反復するように初期状態に戻します。