NAME

ACE_Double_Linked_List_Reverse_Iterator - Implements a reverse iterator for a double linked list ADT

SYNOPSIS

#include <ace/Containers.h>

template<class T> class ACE_Double_Linked_List_Reverse_Iterator : public ACE_Double_Linked_List_Iterator_Base <T> { public: ACE_Double_Linked_List_Reverse_Iterator ( ACE_Double_Linked_List<T> & ); void reset (ACE_Double_Linked_List<T> &); int first (void); int advance (void); T* advance_and_remove (int dont_remove); ACE_Double_Linked_List_Reverse_Iterator<T> & operator++ (void); ACE_Double_Linked_List_Reverse_Iterator<T> operator++ (int); ACE_Double_Linked_List_Reverse_Iterator<T> & operator-- (void); ACE_Double_Linked_List_Reverse_Iterator<T> operator-- (int); void dump (void) const; ACE_ALLOC_HOOK_DECLARE; };

DESCRIPTION

Iterate backwards over the double-linked list. This class provide an interface that let users access the internal element addresses directly, which seems to break the encapsulation. Notice class T must delcare ACE_Double_Linked_ListT, ACE_Double_Linked_List_Iterator_Base T and ACE_Double_Linked_List_Iterator as friend classes and class T should also have data members T* next_ and T* prev_.

Initialization method.

ACE_Double_Linked_List_Reverse_Iterator (ACE_Double_Linked_List<T> &);

void reset (ACE_Double_Linked_List<T> &);

int first (void);

int advance (void);

T* advance_and_remove (int dont_remove);

STL-style iteration methods

ACE_Double_Linked_List_Reverse_Iterator<T> & operator++ (void);

ACE_Double_Linked_List_Reverse_Iterator<T> operator++ (int);

ACE_Double_Linked_List_Reverse_Iterator<T> & operator-- (void);

ACE_Double_Linked_List_Reverse_Iterator<T> operator-- (int);

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

AUTHOR

Doug Schmidt

Initialization and termination methods.

Check boundary conditions.

Classic unordered set operations.

LIBRARY

ace