Hash set template class. More...

#include <HashSet.h>

Inheritance diagram for Urho3D::HashSet< T >:
Collaboration diagram for Urho3D::HashSet< T >:


struct  ConstIterator
 Hash set node const iterator. More...
struct  Iterator
 Hash set node iterator. More...
struct  Node
 Hash set node. More...

Public Member Functions

 HashSet ()
 Construct empty.
 HashSet (const HashSet< T > &set)
 Construct from another hash set.
 ~HashSet ()
HashSetoperator= (const HashSet< T > &rhs)
 Assign a hash set.
HashSetoperator+= (const T &rhs)
 Add-assign a value.
HashSetoperator+= (const HashSet< T > &rhs)
 Add-assign a hash set.
bool operator== (const HashSet< T > &rhs) const
 Test for equality with another hash set.
bool operator!= (const HashSet< T > &rhs) const
 Test for inequality with another hash set.
Iterator Insert (const T &key)
 Insert a key. Return an iterator to it.
void Insert (const HashSet< T > &set)
 Insert a set.
Iterator Insert (const ConstIterator &it)
 Insert a key by iterator. Return iterator to the value.
bool Erase (const T &key)
 Erase a key. Return true if was found.
Iterator Erase (const Iterator &it)
 Erase a key by iterator. Return iterator to the next key.
void Clear ()
 Clear the set.
void Sort ()
 Sort keys. After sorting the set can be iterated in order until new elements are inserted.
bool Rehash (unsigned numBuckets)
 Rehash to a specific bucket count, which must be a power of two. Return true if successful.
Iterator Find (const T &key)
 Return iterator to the key, or end iterator if not found.
ConstIterator Find (const T &key) const
 Return const iterator to the key, or end iterator if not found.
bool Contains (const T &key) const
 Return whether contains a key.
Iterator Begin ()
 Return iterator to the beginning.
ConstIterator Begin () const
 Return iterator to the beginning.
Iterator End ()
 Return iterator to the end.
ConstIterator End () const
 Return iterator to the end.
const T & Front () const
 Return first key.
const T & Back () const
 Return last key.
- Public Member Functions inherited from Urho3D::HashBase
 HashBase ()
void Swap (HashBase &rhs)
 Swap with another hash set or map.
unsigned Size () const
 Return number of elements.
unsigned NumBuckets () const
 Return number of buckets.
bool Empty () const
 Return whether has no elements.

Private Member Functions

NodeHead () const
 Return the head node.
NodeTail () const
 Return the tail node.
NodeFindNode (const T &key, unsigned hashKey) const
 Find a node from the buckets. Do not call if the buckets have not been allocated.
NodeFindNode (const T &key, unsigned hashKey, Node *&previous) const
 Find a node and the previous node from the buckets. Do not call if the buckets have not been allocated.
NodeInsertNode (Node *dest, const T &key)
 Insert a node into the list. Return the new node.
NodeEraseNode (Node *node)
 Erase a node from the list. Return pointer to the next element, or to the end if could not erase.
NodeReserveNode ()
 Reserve a node.
NodeReserveNode (const T &key)
 Reserve a node with specified key.
void FreeNode (Node *node)
 Free a node.
void Rehash ()
 Rehash the buckets.
unsigned Hash (const T &key) const
 Compute a hash based on the key and the bucket size.

Static Private Member Functions

static bool CompareNodes (Node *&lhs, Node *&rhs)
 Compare two nodes.

Additional Inherited Members

- Static Public Attributes inherited from Urho3D::HashBase
static const unsigned MIN_BUCKETS = 8
 Initial amount of buckets.
static const unsigned MAX_LOAD_FACTOR = 4
 Maximum load factor.
- Protected Member Functions inherited from Urho3D::HashBase
void AllocateBuckets (unsigned size, unsigned numBuckets)
 Allocate bucket head pointers + room for size and bucket count variables.
void ResetPtrs ()
 Reset bucket head pointers.
void SetSize (unsigned size)
 Set new size.
HashNodeBase ** Ptrs () const
 Return bucket head pointers.
- Protected Attributes inherited from Urho3D::HashBase
 List head node pointer.
 List tail node pointer.
HashNodeBase ** ptrs_
 Bucket head pointers.
 Node allocator.

Detailed Description

template<class T>
class Urho3D::HashSet< T >

Hash set template class.

The documentation for this class was generated from the following file:
  • /home/travis/build/urho3d/Urho3D/Source/Urho3D/Container/HashSet.h