Inherited from NULL
Inherited by NULL
Friend class HashIterator,HashCleaner,
Description
TComplexHash与THash类似,用于管理索引比较复杂的数据,这些数据的数字标识并不唯一,但是和辅助标识一起组成唯一的数据单元。TComplexHash管理的数据除了必须提供数字标识的接口外,还需要提供判断数据相等的接口。对TComplexHash的数据遍历须用ComplexHashIterator。TComplexHash的数据储存方式与THash一样,数据在BIT的位置仍然由数字标识确定。
Members
Public interface
Private interface
LinkNode * m_pHashLinkTable
Hash基本索引表,Hash的节点为LinkNode类型
ulong m_ulCount
节点的总个数
ulong m_ulModNumber
用于取模运算的模数,也是节点基本表的大小,一般为质数
MemPool * m_pHashPool
当添加一个引起索引冲突的节点时,该节点的空间由该内存池分配
bool m_bSelfPool
内存池来源于外部指定,则为false,若由自己创建,则为true
TComplexHash(ulong hashSize,MemPool *pMemPool=0)
bool insert(T * pData)
void remove(T * pData)
void clear()
void resize(ulong newSize)
T * getData(T *pData)
ulong getCount()
ulong getSize()
void setIterator(Iterator * pIter)