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

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


RWTIsvSlistIterator<T>

形式

#include <rw/tislist.h>
RWTIsvSlist<T> list;
RWTIsvSlistIterator<T> iterator(list);

説明

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

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

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

持続性

なし

公開コンストラクタ

RWTIsvSlistIterator(RWTIsvSlist<T>& c);

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

公開演算子

T*
operator++();

反復子を 1 項目進め、新しいリンクへのポインタを返します。リストの最後に達すると NULL を返します。

T*
operator+=(size_t n);

反復子を n 項目進め、新しいリンクへのポインタを返します。リストの最後に達すると NULL を返します。

T*
operator()();

反復子を 1 項目進め、新しいリンクへのポインタを返します。リストの最後に達すると NULL を返します。

公開メンバー関数

RWTIsvSlist<T>*
container() const;

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

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

テスト関数 testFunTRUE を返す最初のリンクに反復子を進め、そのリンクを返します。そのようなリンクがなければ NULL を返します。

void
insertAfterPoint(T* a);

当該コレクション内で反復子の現在位置の直後に、リンク a を挿入します。

T*
key() const;

反復子の現在位置にあるリンクを返します。反復子が無効であれば NULL を返します。

T*
remove();

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

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

テスト関数 testFunTRUE を返す最初のリンクに反復子を進め、そのリンクを取り除いて返します。失敗すると NULL を返します。成功すると、反復子は取り除いたリンクの直前の要素の位置に置かれます。

void
reset();

反復子を作成直後の状態にリセットします。

void
reset(RWTIsvSlist<TL>& c);

反復子を、コレクション c について反復するようリセットします。