NAME

ACE_Ordered_MultiSet - Implement a simple ordered multiset of T of unbounded size. This class template requires that operator semantics be defined for the parameterized type T, but does not impose any restriction on how that ordering operator is implemented.

SYNOPSIS

#include <ace/Containers.h>

template<class T> class ACE_Ordered_MultiSet { public: friend class ACE_Ordered_MultiSet_Iterator<T>; typedef ACE_Ordered_MultiSet_Iterator<T> ITERATOR; ACE_Ordered_MultiSet (ACE_Allocator *alloc = 0); ACE_Ordered_MultiSet (const ACE_Ordered_MultiSet<T> &); ~ACE_Ordered_MultiSet (void); void operator= (const ACE_Ordered_MultiSet<T> &); int is_empty (void) const; size_t size (void) const; int insert (const T &new_item); int insert (const T &new_item, ITERATOR &iter); int remove (const T &item); int find (const T &item, ITERATOR &iter) const; void reset (void); void dump (void) const; ACE_ALLOC_HOOK_DECLARE; private: int insert_from ( const T &item, ACE_DNode<T> *start_position, ACE_DNode<T> **new_position ); int locate ( const T &item, ACE_DNode<T> *start_position, ACE_DNode<T> *&new_position ) const; void delete_nodes (void); void copy_nodes (const ACE_Ordered_MultiSet<T> &); ACE_DNode<T> *head_; ACE_DNode<T> *tail_; 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_Ordered_MultiSet (ACE_Allocator *alloc = 0);

ACE_Ordered_MultiSet (const ACE_Ordered_MultiSet<T> &);

~ACE_Ordered_MultiSet (void);

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

Check boundary conditions.

int is_empty (void) const;

size_t size (void) const;

Classic unordered set operations.

int insert (const T &new_item);

int insert (const T &new_item, ITERATOR &iter);

int remove (const T &item);

int find (const T &item, ITERATOR &iter) const;

void reset (void);

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

AUTHOR

Doug Schmidt

LIBRARY

ace