TComplexHash

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)

1)
数字标识与辅助标识均相同