RWGDlistIterator(3C++) RWGDlistIterator(3C++)
NameRWGDlistIterator(type) - Rogue Wave library class
Synopsis
#include <rw/gdlist.h>
declare(RWGDlist, type)
RWGDlist(type) a;
RWGDlistIterator(type)I(a) ;
Description
Iterator for class RWGDlist(type), which allows sequential access to all
the elements of a doubly-linked list. Elements are accessed in order, in
either direction. As with all Rogue Wave iterators, the "current item"
is undefined immediately after construction -- you must define it by
using operator() or some other (valid) operation. Once the iterator has
advanced beyond the end of the collection it is no longer valid --
continuing to use it will bring undefined results. In order to simplify
the documentation below, an imaginary typedef
typedef RWBoolean (*yourTester)(const type*, const void*);
has been used. See the documentation for class RWGDlist(type) for an
explanation of this function.
Persistence
None
Example
See class RWGDlist(type)Public ConstructorRWGDlistIterator(type)( RWGDlist(type)& list);
Construct an iterator for the RWGDlist(type) list. Immediately after
Page 1
RWGDlistIterator(3C++) RWGDlistIterator(3C++)
construction, the position of the iterator is undefined.
Public Member Operators
type*
operator()();
Advances the iterator to the next item and returns it. Returns nil if at
the end of the collection.
void
operator++();
Advances the iterator one item.
void
operator--();
Moves the iterator back one item.
void
operator+=(size_t n);
Advances the iterator n items.
void
operator-=(size_t n);
Moves the iterator back n items.
Public Member Functions
RWBoolean
atFirst() const;
Returns TRUE if the iterator is at the start of the list, FALSE
otherwise;
RWBoolean
atLast() const;
Returns TRUE if the iterator is at the end of the list, FALSE otherwise;
type*
findNext(yourTester t,const type* d);
Page 2
RWGDlistIterator(3C++) RWGDlistIterator(3C++)
Moves the iterator to the next item for which the function pointed to by
t finds a match with d and returns it. Returns nil if no match is found,
in which case the position of the iterator will be undefined.
type*
findNextReference(const type* e);
Moves the iterator to the next item with the address e and returns it.
Returns nil if no match is found, in which case the position of the
iterator will be undefined.
type*
insertAfterPoint(type* a);
Adds item a after the current iterator position and return the item. The
position of the iterator is left unchanged.
type*
key() const;
Returns the item at the current iterator position.
type*
remove();
Removes and returns the item at the current cursor position. Afterwards,
the iterator will be positioned at the previous item in the list.
type*
removeNext(yourTester t, const type* d);
Moves the iterator to the next item for which the function pointed to by
t finds a "match" with d and removes and returns it. Returns nil if no
match is found, in which case the position of the iterator will be
undefined.
type*
removeNextReference(const type* a);
Moves the iterator to the next item with the address e and removes and
returns it. Returns nil if no match is found, in which case the position
of the iterator will be undefined.
void
reset();
Page 3
RWGDlistIterator(3C++) RWGDlistIterator(3C++)
Resets the iterator to its initial state.
void
toFirst();
Moves the iterator to the first item in the list.
void
toLast();
Moves the iterator to the last item in the list.
Page 4