Dynalib Utils
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
DynaHashSet< V > Class Template Reference

#include <DynaHashSet.h>

Inheritance diagram for DynaHashSet< V >:
Inheritance graph
[legend]
Collaboration diagram for DynaHashSet< V >:
Collaboration graph
[legend]

Public Member Functions

 DynaHashSet ()
 
 DynaHashSet (int size)
 
virtual ~DynaHashSet ()
 
 DynaHashSet (const DynaHashSet< V > &other)
 
DynaHashSet< V > * copy () override
 
int count () const
 
int capacity () const
 
int freeCells () const
 
bool isEmpty () const
 
bool contains (V *obj)
 
bool isOwnsMembers () const
 
void setOwnsMembers (bool ownsMembers)
 
SetEntry< V > * getEntry (V *value)
 
SetEntry< V > * getEntry (V value)
 
bool add (V *value)
 
bool add (V value)
 
V * remove (V *value)
 
V * remove (V value)
 
void deleteEntry (V *value)
 
void deleteEntry (V value)
 
SetEntry< V > * removeEntry (SetEntry< V > *entry)
 
void clear ()
 
DynaSetIter< V > begin ()
 
DynaSetIter< V > end ()
 
SetIter< V > values ()
 
- Public Member Functions inherited from ICopyable< DynaHashSet< V > >
 ICopyable ()=default
 
virtual ~ICopyable ()=default
 

Static Public Attributes

static V nullObjectInstance
 
static V * nullObject = &nullObjectInstance
 

Protected Member Functions

void _init (int size)
 
int _getHashCode (const V *value) const
 
void _reHash (int newCapacity)
 
int _getTableIndex (V *value)
 

Protected Attributes

SetEntry< V > ** _table = nullptr
 
int _count
 
int _capacity
 
int _freeCells
 
int _modCount
 
bool _ownsMembers
 

Static Protected Attributes

static constexpr int INITIAL_SIZE = 3
 
static constexpr double LOAD_FACTOR = 0.75
 
static SetEntry< V > deletedObjectInstance = SetEntry<V>(DynaHashSet<V>::nullObject, false)
 
static SetEntry< V > * deletedObject = &deletedObjectInstance
 

Friends

class SetEntry< V >
 
class DynaSetIter< V >
 
class SetIter< V >
 

Constructor & Destructor Documentation

◆ DynaHashSet() [1/3]

template<typename V >
DynaHashSet< V >::DynaHashSet ( )
explicit

DynaHashMap Constructor

Template Parameters
K
V

◆ DynaHashSet() [2/3]

template<typename V >
DynaHashSet< V >::DynaHashSet ( int  size)
explicit

◆ ~DynaHashSet()

template<typename V >
DynaHashSet< V >::~DynaHashSet ( )
virtual

◆ DynaHashSet() [3/3]

template<typename V>
DynaHashSet< V >::DynaHashSet ( const DynaHashSet< V > &  other)

Member Function Documentation

◆ _getHashCode()

template<typename V>
int DynaHashSet< V >::_getHashCode ( const V *  value) const
protected

◆ _getTableIndex()

template<typename V>
int DynaHashSet< V >::_getTableIndex ( V *  value)
protected

◆ _init()

template<typename V >
void DynaHashSet< V >::_init ( int  size)
protected

◆ _reHash()

template<typename V >
void DynaHashSet< V >::_reHash ( int  newCapacity)
protected

◆ add() [1/2]

template<typename V>
bool DynaHashSet< V >::add ( V *  value)

◆ add() [2/2]

template<typename V>
bool DynaHashSet< V >::add ( value)

◆ begin()

template<typename V >
DynaSetIter< V > DynaHashSet< V >::begin ( )

◆ capacity()

template<typename V>
int DynaHashSet< V >::capacity ( ) const
inline

◆ clear()

template<typename V >
void DynaHashSet< V >::clear ( )

◆ contains()

template<typename V>
bool DynaHashSet< V >::contains ( V *  obj)
inline

◆ copy()

template<typename V >
DynaHashSet< V > * DynaHashSet< V >::copy ( )
overridevirtual

◆ count()

template<typename V>
int DynaHashSet< V >::count ( ) const
inline

◆ deleteEntry() [1/2]

template<typename V>
void DynaHashSet< V >::deleteEntry ( V *  value)

◆ deleteEntry() [2/2]

template<typename V>
void DynaHashSet< V >::deleteEntry ( value)

◆ end()

template<typename V >
DynaSetIter< V > DynaHashSet< V >::end ( )

◆ freeCells()

template<typename V>
int DynaHashSet< V >::freeCells ( ) const
inline

◆ getEntry() [1/2]

template<typename V>
SetEntry< V > * DynaHashSet< V >::getEntry ( V *  value)

DynaHashMap get Entry based on Key

Template Parameters
K
V
Parameters
key
Returns

◆ getEntry() [2/2]

template<typename V>
SetEntry< V > * DynaHashSet< V >::getEntry ( value)

◆ isEmpty()

template<typename V>
bool DynaHashSet< V >::isEmpty ( ) const
inline

◆ isOwnsMembers()

template<typename V>
bool DynaHashSet< V >::isOwnsMembers ( ) const
inline

◆ remove() [1/2]

template<typename V>
V * DynaHashSet< V >::remove ( V *  value)

◆ remove() [2/2]

template<typename V>
V * DynaHashSet< V >::remove ( value)

◆ removeEntry()

template<typename V>
SetEntry< V > * DynaHashSet< V >::removeEntry ( SetEntry< V > *  entry)

◆ setOwnsMembers()

template<typename V>
void DynaHashSet< V >::setOwnsMembers ( bool  ownsMembers)
inline

◆ values()

template<typename V >
SetIter< V > DynaHashSet< V >::values ( )

Friends And Related Function Documentation

◆ DynaSetIter< V >

template<typename V>
friend class DynaSetIter< V >
friend

◆ SetEntry< V >

template<typename V>
friend class SetEntry< V >
friend

◆ SetIter< V >

template<typename V>
friend class SetIter< V >
friend

Member Data Documentation

◆ _capacity

template<typename V>
int DynaHashSet< V >::_capacity
protected

◆ _count

template<typename V>
int DynaHashSet< V >::_count
protected

◆ _freeCells

template<typename V>
int DynaHashSet< V >::_freeCells
protected

◆ _modCount

template<typename V>
int DynaHashSet< V >::_modCount
protected

◆ _ownsMembers

template<typename V>
bool DynaHashSet< V >::_ownsMembers
protected

◆ _table

template<typename V>
SetEntry<V>** DynaHashSet< V >::_table = nullptr
protected

◆ deletedObject

template<typename V>
SetEntry< V > * DynaHashSet< V >::deletedObject = &deletedObjectInstance
staticprotected

◆ deletedObjectInstance

template<typename V>
SetEntry< V > DynaHashSet< V >::deletedObjectInstance = SetEntry<V>(DynaHashSet<V>::nullObject, false)
staticprotected

◆ INITIAL_SIZE

template<typename V>
constexpr int DynaHashSet< V >::INITIAL_SIZE = 3
staticprotected

◆ LOAD_FACTOR

template<typename V>
constexpr double DynaHashSet< V >::LOAD_FACTOR = 0.75
staticprotected

◆ nullObject

template<typename V>
V * DynaHashSet< V >::nullObject = &nullObjectInstance
static

◆ nullObjectInstance

template<typename V>
V DynaHashSet< V >::nullObjectInstance
static

The documentation for this class was generated from the following files: