Module: Essential Tools Module Group: Generic Classes
Does not inherit
#include <rw/gdlist.h> declare(RWGDlist, type) RWGDlist(type) a; RWGDlistIterator(type) I(a) ;
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.
NOTE -- RWGDlistIterator is deprecated. Please use RWTValDlistIterator or RWTPtrDlistIterator.
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 bool (*yourTester)(const type*, const void*);
has been used. See the documentation for class RWGDlist(type) for an explanation of this function.
None
See class RWGDlist(type).
RWGDlistIterator(type)( RWGDlist(type)& list);
Construct an iterator for the RWGDlist(type) list. Immediately after construction, the position of the iterator is undefined.
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.
bool atFirst() const;
Returns true if the iterator is at the start of the list, false otherwise;
bool atLast() const;
Returns true if the iterator is at the end of the list, false otherwise;
type* findNext(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 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();
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.
© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.