RWTPtrSortedDlistIterator(3C++) RWTPtrSortedDlistIterator(3C++)
Name
RWTPtrSortedDlistIterator<T,C> - Rogue Wave library class
Synopsis
#include<rw/tpsrtdli.h>
RWTPtrSortedDlist<T,C> dl;
RWTPtrSortedDlistIterator<T,C> itr(dl);
Standard C++ Library Dependent!RWTPtrSortedDlistIterator requires the Standard C++ Library.
DescriptionRWTPtrSortedDlistIterator is supplied with Tools.h++ 7.x to provide an
iterator interface to the new Standard Library based collections that has
backward compatibility with the container iterators provided in Tools.h++
6.x. The order of iteration over an RWTPtrSortedDlist is dependent on the
comparator object parameter C as applied to the values stored in the
container. The current item referenced by this iterator is undefined
after construction or after a call to reset(). The iterator becomes
valid after being advanced with either a preincrement or operator(). For
both operator++ and operator(), iterating past the last element will
return a value equivalent to boolean false. Continued increments will
return a value equivalent to false until reset() is called.
Persistence
None
Examples
#include<rw/tpsrtdli.h>
#include<iostream.h>
#include<rw/cstring.h>
int main(){
RWTPtrSortedDlist<RWCString,less<RWCString> > a;
RWTPtrSortedDlistIterator<RWCString,less<RWCString> > itr(a);
a.insert(new RWCString("John"));
a.insert(new RWCString("Steve"));
a.insert(new RWCString("Mark"));
a.insert(new RWCString("Steve"));
for(;itr();)
cout << *itr.key() <<endl;
return 0;
Page 1
RWTPtrSortedDlistIterator(3C++) RWTPtrSortedDlistIterator(3C++)
}
Program Output
John
Mark
Steve
Steve
Public Constructors
RWTPtrSortedDlistIterator<T,C>(RWTPtrSortedDlist<T,C>& l);
Creates an iterator for the list l. The iterator begins in an undefined
state and must be advanced before the first element will be accessible
Public Member Operators
T*
operator()();
Advances self to the next element, dereferences the resulting iterator
and returns its value. If the iterator has advanced past the last item
in the container, the element returned will be a nil pointer equivalent
to boolean false.
RWBoolean
operator++();
Advances self to the next element. If the iterator has been reset or
just created self will now reference the first element. If, before
iteration, self referenced the last association in the list, self will
now point to an undefined value and a value equivalent to false will be
returned. Otherwise, a value equivalent to true is returned. Note: no
post-increment operator is provided.
RWBoolean
operator+=(size_type n);
Behaves as if operator++() had been applied n times.
RWBoolean
operator--();
Moves self back to the immediately previous element. If the iterator has
been reset or just created, this operator will return false, otherwise it
will return true. If self references the the first element, it will now
be in the reset state. If self has been iterated past the last value in
the list, it will now reference the last item in the list. Note: no
post-decrement operator is provided.
Page 2
RWTPtrSortedDlistIterator(3C++) RWTPtrSortedDlistIterator(3C++)
RWBoolean
operator-=(size_type n);
Behaves as if operator--() had been applied n times
Public Member Functions
RWTPtrSortedDlist<T,C>*
container() const;
Returns a pointer to the collection being iterated over.
T*
findNext(const T* a);
Returns the first element t encountered by iterating self forward, such
that the expression (*t == *a) is true. Otherwise returns nil. Leaves
self referencing found item or "off the end."
T*
findNext(RWBoolean(*fn)(T*, void*), void* d);
Returns the first element t encountered by iterating self forward such
that the expression((*fn)(t,d)) is true. fn points to a user-defined
tester function which must have prototype:
bool yourTester(const T* a, void* d);
Client data may be passed through parameter d. Otherwise returns nil.
Leaves self referencing found item or "off the end."
T*
key();
Returns the stored value pointed to by self. Undefined if self is not
referencing a value within the list.
T*
remove();
Returns the stored value pointed to by self. and removes it from the
collection. Undefined if self is not referencing a value within the list.
Page 3
RWTPtrSortedDlistIterator(3C++) RWTPtrSortedDlistIterator(3C++)
Leaves self referencing prior item or in reset state.
T*
removeNext(const T*);
Returns and removes the first element t, encountered by iterating self
forward, such that the expression (*t == *a) is true. Otherwise returns
nil. Leaves self referencing prior item or in reset state.
T*
removeNext(RWBoolean(*fn)(T*, void*), void* d);
Returns and removes the first element t, encountered by iterating self
forward, such that the expression((*fn)(t,d)) is true. fn points to a
user-defined tester function which must have prototype:
bool yourTester(const T* a, void* d);
Client data may be passed through parameter d. Otherwise returns nil.
Leaves self referencing prior item or in reset state.
void
reset();
void
reset(RWTPtrSortedDlist<T,C>& l);
Resets the iterator so that after being advanced it will point to the
first element of the collection. Using reset() with no argument will
reset the iterator on the current container. Supplying a
RWTPtrSortedDlist to reset() will reset the iterator on the new
container.
Page 4