void CstlHashClear(CstlHash *hash)
删除hash表所有节点。
CstlHashIterator CstlHashIterEnd(const CstlHash *hash)
获取hash表中最后一个节点之后预留的迭代器。
int32_t CstlHashAt(const CstlHash *hash, uintptr_t key, uintptr_t *value)
查找节点,返回节点数据。
CstlHash * CstlHashCreate(size_t bktSize, CstlHashCodeCalcFunc hashFunc, CstlHashMatchFunc matchFunc, CstlDupFreeFuncPair *keyFunc, CstlDupFreeFuncPair *valueFunc)
创建一个Hash表,返回Hash表的句柄
int32_t CstlHashPut(CstlHash *hash, uintptr_t key, size_t keySize, uintptr_t value, size_t valueSize)
插入或更新hash数据
bool CstlHashMatchStr(uintptr_t key1, uintptr_t key2)
默认字符串匹配函数。
int32_t CstlHashInsert(CstlHash *hash, uintptr_t key, size_t keySize, uintptr_t value, size_t valueSize)
插入hash数据
uintptr_t CstlHashIterValue(const CstlHash *hash, CstlHashIterator it)
获取迭代器的value。
CstlHashIterator CstlHashIterBegin(const CstlHash *hash)
获取hash表中的第一个节点的迭代器。
CstlHashIterator CstlHashErase(CstlHash *hash, uintptr_t key)
从hash表中移除指定结点。
CstlHashIterator CstlHashFind(const CstlHash *hash, uintptr_t key)
查找key所在迭代器。
bool CstlHashMatchInt(uintptr_t key1, uintptr_t key2)
默认整型匹配函数。
size_t CstlHashCodeCalcInt(uintptr_t key, size_t bktSize)
默认整型哈希函数。
size_t CstlHashCodeCalcStr(uintptr_t key, size_t bktSize)
默认字符串哈希函数。
bool(* CstlHashMatchFunc)(uintptr_t key1, uintptr_t key2)
该函数把输入数据与Key进行匹配比较。第一个哈希表中保存的key,第二个是用户需要匹配的Key。如果不匹配,返回值为false。
Definition cstl_hash.h:99
size_t CstlHashSize(const CstlHash *hash)
获取HASH表的节点数量。
bool CstlHashEmpty(const CstlHash *hash)
判断当前HASH表是否为空。
void CstlHashDestory(CstlHash *hash)
删除hash表
struct TagHashNode * CstlHashIterator
hash表迭代器定义,指向hash节点
Definition cstl_hash.h:81
CstlHashIterator CstlHashIterNext(const CstlHash *hash, CstlHashIterator it)
获取hash表的下一个节点迭代器。
uintptr_t CstlHashIterKey(const CstlHash *hash, CstlHashIterator it)
获取迭代器的key。
size_t(* CstlHashCodeCalcFunc)(uintptr_t key, size_t bktSize)
根据输入的Key生成hash表索引。
Definition cstl_hash.h:89
UINT32 size_t
Definition los_typedef.h:78
key和value函数原型对
Definition cstl_public.h:161
Definition cstl_hash.c:37
Definition cstl_hash.c:29
uintptr_t value
Definition cstl_hash.c:32
uintptr_t key
Definition cstl_hash.c:31
unsigned int uintptr_t
Definition td_type.h:65