NAME

ACE_Unbounded_Set - Implement a simple unordered set of T of unbounded size.

SYNOPSIS

#include <ace/Containers.h>

template<class T> class ACE_Unbounded_Set { public: friend class ACE_Unbounded_Set_Iterator<T>; typedef ACE_Unbounded_Set_Iterator<T> ITERATOR; typedef ACE_Unbounded_Set_Iterator<T> iterator; ACE_Unbounded_Set (ACE_Allocator *alloc = 0); ACE_Unbounded_Set (const ACE_Unbounded_Set<T> &); void operator= (const ACE_Unbounded_Set<T> &); ~ACE_Unbounded_Set (void); int is_empty (void) const; int is_full (void) const; int insert (const T &new_item); int remove (const T &item); int find (const T &item) const; size_t size (void) const; void dump (void) const; void reset (void); ACE_Unbounded_Set_Iterator<T> begin (void); ACE_Unbounded_Set_Iterator<T> end (void); ACE_ALLOC_HOOK_DECLARE; private: int insert_tail (const T &item); void delete_nodes (void); void copy_nodes (const ACE_Unbounded_Set<T> &); ACE_Node<T> *head_; size_t cur_size_; ACE_Allocator *allocator_; };

DESCRIPTION

This implementation of an unordered set uses a circular linked list with a dummy node. This implementation does not allow duplicates, but it maintains FIFO ordering of insertions.

Initialization and termination methods.

ACE_Unbounded_Set (ACE_Allocator *alloc = 0);

ACE_Unbounded_Set (const ACE_Unbounded_Set<T> &);

void operator= (const ACE_Unbounded_Set<T> &);

~ACE_Unbounded_Set (void);

Check boundary conditions.

int is_empty (void) const;

int is_full (void) const;

Classic unordered set operations.

int insert (const T &new_item);

int remove (const T &item);

int find (const T &item) const;

size_t size (void) const;

void dump (void) const;

void reset (void);

STL-styled unidirectional iterator factory.

ACE_Unbounded_Set_Iterator<T> begin (void);

ACE_Unbounded_Set_Iterator<T> end (void);

ACE_ALLOC_HOOK_DECLARE;

AUTHOR

Doug Schmidt

Initialization and termination methods.

Check boundary conditions.

Classic unordered set operations.

LIBRARY

ace