SourcePro® API Reference Guide

 
Loading...
Searching...
No Matches
RWTIsvSlistIterator< TL > Class Template Reference

Iterator for class RWTIsvSlist. More...

#include <rw/tislist.h>

Inherits RWIsvSlistIterator.

Public Member Functions

 RWTIsvSlistIterator (RWTIsvSlist< TL > &c)
 
RWTIsvSlist< TL > * container () const
 
TL * findNext (bool(*testFun)(const TL *, void *), void *)
 
void insertAfterPoint (TL *a)
 
TL * key () const
 
TL * operator() ()
 
TL * operator++ ()
 
TL * operator+= (size_t n)
 
TL * remove ()
 
TL * removeNext (bool(*testFun)(const TL *, void *), void *)
 
void reset ()
 
void reset (RWTIsvSlist< TL > &c)
 

Detailed Description

template<class TL>
class RWTIsvSlistIterator< TL >

RWTIsvSlistIterator provides an iterator interface for class RWTIsvSlist, allowing sequential access to all the elements of a singly-linked parameterized intrusive list. Elements are accessed in order, from first to last.

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; its continued use will result in undefined behavior.

Synopsis
#include <rw/tislist.h>
RWTIsvSlistIterator<T> iterator(list);
Iterator for class RWTIsvSlist.
Definition tislist.h:390
Implements intrusive singly-linked lists.
Definition tislist.h:108
Persistence
None

Constructor & Destructor Documentation

◆ RWTIsvSlistIterator()

template<class TL >
RWTIsvSlistIterator< TL >::RWTIsvSlistIterator ( RWTIsvSlist< TL > & c)
inline

Constructs an iterator to be used with the list c.

Member Function Documentation

◆ container()

template<class TL >
RWTIsvSlist< TL > * RWTIsvSlistIterator< TL >::container ( ) const
inline

Returns a pointer to the collection over which this iterator is iterating.

◆ findNext()

template<class TL >
TL * RWTIsvSlistIterator< TL >::findNext ( bool(* testFun )(const TL *, void *),
void *  )

Advances the iterator to the first link for which the function pointed to by testFun returns true and returns it, or rwnil if there is no such link.

◆ insertAfterPoint()

template<class TL >
void RWTIsvSlistIterator< TL >::insertAfterPoint ( TL * a)
inline

Inserts the link pointed to by a into the iterator's associated collection in the position immediately after the iterator's current position.

◆ key()

template<class TL >
TL * RWTIsvSlistIterator< TL >::key ( ) const
inline

Returns the link at the iterator's current position. Returns rwnil if the iterator is not valid.

◆ operator()()

template<class TL >
TL * RWTIsvSlistIterator< TL >::operator() ( )
inline

Advances the iterator one position, returning a pointer to the new link, or rwnil if the end of the list has been reached.

◆ operator++()

template<class TL >
TL * RWTIsvSlistIterator< TL >::operator++ ( )
inline

Advances the iterator one position, returning a pointer to the new link, or rwnil if the end of the list has been reached.

◆ operator+=()

template<class TL >
TL * RWTIsvSlistIterator< TL >::operator+= ( size_t n)
inline

Advances the iterator n positions, returning a pointer to the new link, or rwnil if the end of the list has been reached.

◆ remove()

template<class TL >
TL * RWTIsvSlistIterator< TL >::remove ( )
inline

Removes and returns the current link from the iterator's associated collection. Returns rwnil if unsuccessful. If successful, the iterator will be positioned at the element immediately before the removed link. This function is relatively inefficient for a singly-linked list.

◆ removeNext()

template<class TL >
TL * RWTIsvSlistIterator< TL >::removeNext ( bool(* testFun )(const TL *, void *),
void *  )

Advances the iterator to the first link for which the function pointed to by testFun returns true, removes and returns it. Returns false if unsuccessful. If successful, the iterator will be positioned at the element immediately before the removed element.

◆ reset() [1/2]

template<class TL >
void RWTIsvSlistIterator< TL >::reset ( )
inline

Resets the iterator to the state it had immediately after construction.

◆ reset() [2/2]

template<class TL >
void RWTIsvSlistIterator< TL >::reset ( RWTIsvSlist< TL > & c)
inline

Resets the iterator to iterate over the collection c.

Copyright © 2024 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.