====== HashIterator ====== **//Inherited from//** Iterator, **//Inherited by//** NULL **//Friend class//** NULL **//Description//** HashIterator向THash和TComplexHash提供遍历元素功能。在使用前必须与数据容器绑定。下面所示为HashIterator使用代码: THash hash; HashIterator hIter; hash.setContainer(&hIter); hIter.reset(); T * pData; while(pData = (T*)hIter.next()) { ... } **//Members//** * LinkNode * [[hashiterator#m_ptablenode|m_pTableNode]] * LinkNode * [[hashiterator#m_pcurnode|m_pCurNode]] * LinkNode * [[hashiterator#m_phashlinktable|m_pHashLinkTable]] * ulong [[hashiterator#m_ultablesize|m_ulTableSize]] **//Public interface//** * [[hashiterator#hashiterator1|HashIterator]](void * pHash = 0) * void [[hashiterator#setcontainer|setContainer]](void *pContainer) * void [[hashiterator#reset|reset]]() * void * [[hashiterator#next|next]]() **//Private interface//** * void [[hashiterator#settcontainer|setTContainer]](THash * pContainer) ---- {{anchor:m_ptablenode}} **LinkNode * m_pTableNode** 表征当前节点对应的index在BIT中的节点 {{anchor:m_pcurnode}} **LinkNode * m_pCurNode** 当前节点 {{anchor:m_phashlinktable}} **LinkNode * m_pHashLinkTable** 所属Hash的BIT {{anchor:m_ultablesize}} **ulong m_ulTableSize** 所属Hash的BIT大小 ---- {{anchor:hashiterator1}} **HashIterator(void * pHash = 0)** *function: 构造HashIterator对象 *parameters: - [i]void * pHash = 0: 指定HashIterator的宿主Hash,默认值为不指定 *return value: 无 {{anchor:setcontainer}} **void setContainer(void *pContainer)** *function: 指定宿主Hash *parameters: - [i]void *pContainer: 宿主容器Hash的指针 *return value: 无 {{anchor:reset}} **void reset()** *function: 重置迭代器到Hash的头部 *parameters: NULL *return value: 无 {{anchor:next}} **void * next()** *function: 遍历宿主容器Hash的下一个元素 *parameters: NULL *return value: 返回下一个元素的地址,若已经到达Hash尾部,则返回NULL ---- {{anchor:settcontainer}} **void setTContainer(THash * pContainer)** *function: 设置模板Hash宿主 *parameters: - [i]THash * pContainer:模板Hash宿主的地址 *return value: 无