RWGSlistIterator(3C++)
RWGSlistIterator(type) - Rogue Wave library class
As shipped in IRIX 6.5.5. Unchanged since IRIX 6.5.
Name RWGSlistIterator(type) - Rogue Wave library class Synopsis #include <rw/gslist.h> declare(RWGSlist, type) RWGSlist(type) a ; RWGSlistIterator(type) I(a); Description Iterator for class RWGSlist(type), which allows sequential access to all the elements of a singly-linked list. Elements are accessed in order, first to last. 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 RWGSlist(type) for an explanation of this function. Persistence None Public Constructor RWGSlistIterator(type)( RWGSlist(type)& list); Constructs an iterator for the RWGSlist(type) list. Immediately after 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 it is at the end of the collection. void operator++(); Advances the iterator one item. void operator+=(size_t n); Advances the iterator 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); 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. In a singly-linked list, this function is an inefficient operation because the entire list must be traversed, looking for the link before the link to be removed. 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* e); 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 start of the list. void toLast(); Moves the iterator to the end of the list.