#include <Unbounded_Set.h>
Public Types | |
typedef ACE_Unbounded_Set_Iterator< T > | ITERATOR |
typedef ACE_Unbounded_Set_Iterator< T > | iterator |
typedef ACE_Unbounded_Set_Const_Iterator < T > | CONST_ITERATOR |
typedef ACE_Unbounded_Set_Const_Iterator < T > | const_iterator |
Public Member Functions | |
ACE_Unbounded_Set (ACE_Allocator *alloc=0) | |
ACE_Unbounded_Set (const ACE_Unbounded_Set< T > &) | |
Copy constructor. | |
ACE_Unbounded_Set< T > & | operator= (const ACE_Unbounded_Set< T > &) |
Assignment operator. | |
~ACE_Unbounded_Set (void) | |
Destructor. | |
bool | is_empty (void) const |
Returns true if the container is empty, otherwise returns false . | |
bool | is_full (void) const |
Returns false . | |
int | insert (const T &new_item) |
Linear insertion of an item. | |
int | insert_tail (const T &item) |
int | remove (const T &item) |
Linear remove operation. | |
int | find (const T &item) const |
size_t | size (void) const |
Size of the set. | |
void | dump (void) const |
Dump the state of an object. | |
void | reset (void) |
Reset the ACE_Unbounded_Set to be empty. | |
iterator | begin (void) |
iterator | end (void) |
const_iterator | begin (void) const |
const_iterator | end (void) const |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. | |
Private Member Functions | |
void | delete_nodes (void) |
Delete all the nodes in the Set. | |
void | copy_nodes (const ACE_Unbounded_Set< T > &) |
Copy nodes into this set. | |
Private Attributes | |
ACE_Node< T > * | head_ |
Head of the linked list of Nodes. | |
size_t | cur_size_ |
Current size of the set. | |
ACE_Allocator * | allocator_ |
Allocation strategy of the set. | |
Friends | |
class | ACE_Unbounded_Set_Iterator< T > |
class | ACE_Unbounded_Set_Const_Iterator< T > |
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.
Requirements and Performance Characteristics
typedef ACE_Unbounded_Set_Iterator<T> ACE_Unbounded_Set< T >::ITERATOR |
typedef ACE_Unbounded_Set_Iterator<T> ACE_Unbounded_Set< T >::iterator |
typedef ACE_Unbounded_Set_Const_Iterator<T> ACE_Unbounded_Set< T >::CONST_ITERATOR |
typedef ACE_Unbounded_Set_Const_Iterator<T> ACE_Unbounded_Set< T >::const_iterator |
ACE_Unbounded_Set< T >::ACE_Unbounded_Set | ( | ACE_Allocator * | alloc = 0 |
) | [inline] |
Constructor. Use user specified allocation strategy if specified. Initialize an empty set using the allocation strategy of the user if provided.
ACE_Unbounded_Set< T >::ACE_Unbounded_Set | ( | const ACE_Unbounded_Set< T > & | us | ) | [inline] |
Copy constructor.
Initialize this set to be an exact copy of the set provided.
ACE_Unbounded_Set< T >::~ACE_Unbounded_Set | ( | void | ) | [inline] |
Destructor.
Destroy the nodes of the set.
ACE_Unbounded_Set< T > & ACE_Unbounded_Set< T >::operator= | ( | const ACE_Unbounded_Set< T > & | us | ) | [inline] |
Assignment operator.
Perform a deep copy of the rhs into the lhs.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE bool ACE_Unbounded_Set< T >::is_empty | ( | void | ) | const [inline] |
Returns true
if the container is empty, otherwise returns false
.
Constant time is_empty check.
ACE_INLINE bool ACE_Unbounded_Set< T >::is_full | ( | void | ) | const [inline] |
Returns false
.
Always returns false
since the set can never fill up.
int ACE_Unbounded_Set< T >::insert | ( | const T & | new_item | ) | [inline] |
Linear insertion of an item.
Insert new_item into the set (doesn't allow duplicates). Returns -1 if failures occur, 1 if item is already present, else 0.
int ACE_Unbounded_Set< T >::insert_tail | ( | const T & | item | ) | [inline] |
Insert item at the tail of the set (doesn't check for duplicates). Constant time insert at the end of the set.
int ACE_Unbounded_Set< T >::remove | ( | const T & | item | ) | [inline] |
Linear remove operation.
Remove first occurrence of item from the set. Returns 0 if it removes the item, -1 if it can't find the item, and -1 if a failure occurs.
int ACE_Unbounded_Set< T >::find | ( | const T & | item | ) | const [inline] |
Finds if item occurs in the set. Returns 0 if find succeeds, else -1. Performs a linear find operation.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL size_t ACE_Unbounded_Set< T >::size | ( | void | ) | const [inline] |
Size of the set.
Access the size of the set.
void ACE_Unbounded_Set< T >::dump | ( | void | ) | const [inline] |
Dump the state of an object.
void ACE_Unbounded_Set< T >::reset | ( | void | ) | [inline] |
Reset the ACE_Unbounded_Set to be empty.
Delete the nodes of the set.
ACE_Unbounded_Set< T >::iterator ACE_Unbounded_Set< T >::begin | ( | void | ) | [inline] |
ACE_Unbounded_Set< T >::iterator ACE_Unbounded_Set< T >::end | ( | void | ) | [inline] |
ACE_Unbounded_Set< T >::const_iterator ACE_Unbounded_Set< T >::begin | ( | void | ) | const [inline] |
ACE_Unbounded_Set< T >::const_iterator ACE_Unbounded_Set< T >::end | ( | void | ) | const [inline] |
void ACE_Unbounded_Set< T >::delete_nodes | ( | void | ) | [inline, private] |
Delete all the nodes in the Set.
void ACE_Unbounded_Set< T >::copy_nodes | ( | const ACE_Unbounded_Set< T > & | us | ) | [inline, private] |
Copy nodes into this set.
friend class ACE_Unbounded_Set_Iterator< T > [friend] |
friend class ACE_Unbounded_Set_Const_Iterator< T > [friend] |
ACE_Unbounded_Set< T >::ACE_ALLOC_HOOK_DECLARE |
Declare the dynamic allocation hooks.
ACE_Node<T>* ACE_Unbounded_Set< T >::head_ [private] |
Head of the linked list of Nodes.
size_t ACE_Unbounded_Set< T >::cur_size_ [private] |
Current size of the set.
ACE_Allocator* ACE_Unbounded_Set< T >::allocator_ [private] |
Allocation strategy of the set.