mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-12-04 04:58:24 +08:00
10 KiB
10 KiB
hash_table_t
概述
哈希表。
用hash_table_init初始化时,用hash_table_deinit释放。如:
hash_table_t hash_table;
hash_table_init(&hash_table, 10, destroy, compare, hash);
...
hash_table_deinit(&hash_table);
用hash_table_create创建时,用hash_table_destroy销毁。如:
hash_table_t* hash_table = hash_table_create(10, destroy, compare, hash);
...
hash_table_destroy(hash_table);
函数
函数名称 | 说明 |
---|---|
hash_table_add | 加入一个元素。 |
hash_table_clear | 清除全部元素。 |
hash_table_count | 返回满足条件元素的个数。 |
hash_table_create | 创建hash_table对象。 |
hash_table_deinit | 清除全部元素,并释放elms。 |
hash_table_destroy | 销毁hash_table对象。 |
hash_table_find | 查找第一个满足条件的元素。 |
hash_table_foreach | 遍历元素。 |
hash_table_hash_int | 计算int的hash值。 |
hash_table_hash_str | 计算字符串hash值。 |
hash_table_init | 初始化hash_table对象。 |
hash_table_remove | 删除第一个满足条件的元素。 |
hash_table_remove_all | 删除全部满足条件的元素。 |
hash_table_size | 返回全部元素个数。 |
属性
属性名称 | 类型 | 说明 |
---|---|---|
buckets | darray_t | buckets。 |
compare | tk_compare_t | 元素比较函数。 |
destroy | tk_destroy_t | 元素销毁函数。 |
hash | tk_hash_t | 元素哈希函数。 |
hash_table_add 函数
- 函数功能:
加入一个元素。
- 函数原型:
ret_t hash_table_add (hash_table_t* hash_table, void* data, bool_t replace_if_exist);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
hash_table | hash_table_t* | 哈希表对象。 |
data | void* | 数据。 |
replace_if_exist | bool_t | 如果存在是否替换。 |
hash_table_clear 函数
- 函数功能:
清除全部元素。
- 函数原型:
ret_t hash_table_clear (hash_table_t* hash_table);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
hash_table | hash_table_t* | 哈希表对象。 |
hash_table_count 函数
- 函数功能:
返回满足条件元素的个数。
- 函数原型:
int32_t hash_table_count (hash_table_t* hash_table, tk_compare_t cmp, void* ctx);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | int32_t | 返回元素个数。 |
hash_table | hash_table_t* | 哈希表对象。 |
cmp | tk_compare_t | 比较函数,为NULL则使用内置的比较函数。 |
ctx | void* | 比较函数的上下文。 |
hash_table_create 函数
- 函数功能:
创建hash_table对象。
- 函数原型:
hash_table_t* hash_table_create (uint32_t capacity, tk_destroy_t destroy, tk_compare_t compare, tk_hash_t hash);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | hash_table_t* | 哈希表对象。 |
capacity | uint32_t | 哈希表桶数。 |
destroy | tk_destroy_t | 元素销毁函数。 |
compare | tk_compare_t | 元素比较函数。 |
hash | tk_hash_t | 元素哈希函数。 |
hash_table_deinit 函数
- 函数功能:
清除全部元素,并释放elms。
- 函数原型:
ret_t hash_table_deinit (hash_table_t* hash_table);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
hash_table | hash_table_t* | 哈希表对象。 |
hash_table_destroy 函数
- 函数功能:
销毁hash_table对象。
- 函数原型:
ret_t hash_table_destroy (hash_table_t* hash_table);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
hash_table | hash_table_t* | 哈希表对象。 |
hash_table_find 函数
- 函数功能:
查找第一个满足条件的元素。
- 函数原型:
void* hash_table_find (hash_table_t* hash_table, tk_compare_t cmp, void* ctx);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | void* | 如果找到,返回满足条件的对象,否则返回NULL。 |
hash_table | hash_table_t* | 哈希表对象。 |
cmp | tk_compare_t | 比较函数,为NULL则使用内置的比较函数。 |
ctx | void* | 比较函数的上下文。 |
hash_table_foreach 函数
- 函数功能:
遍历元素。
- 函数原型:
ret_t hash_table_foreach (hash_table_t* hash_table, tk_visit_t visit, void* ctx);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
hash_table | hash_table_t* | 哈希表对象。 |
visit | tk_visit_t | 遍历函数。 |
ctx | void* | 遍历函数的上下文。 |
hash_table_hash_int 函数
- 函数功能:
计算int的hash值。
- 函数原型:
uint32_t hash_table_hash_int (const void* data);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | uint32_t | 返回hash值。 |
data | const void* | 数据。 |
hash_table_hash_str 函数
- 函数功能:
计算字符串hash值。
- 函数原型:
uint32_t hash_table_hash_str (const void* data);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | uint32_t | 返回hash值。 |
data | const void* | 数据。 |
hash_table_init 函数
- 函数功能:
初始化hash_table对象。
- 函数原型:
hash_table_t* hash_table_init (hash_table_t* hash_table, uint32_t capacity, tk_destroy_t destroy, tk_compare_t compare, tk_hash_t hash);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | hash_table_t* | 哈希表对象。 |
hash_table | hash_table_t* | 哈希表对象。 |
capacity | uint32_t | 哈希表桶数。 |
destroy | tk_destroy_t | 元素销毁函数。 |
compare | tk_compare_t | 元素比较函数。 |
hash | tk_hash_t | 元素哈希函数。 |
hash_table_remove 函数
- 函数功能:
删除第一个满足条件的元素。
- 函数原型:
ret_t hash_table_remove (hash_table_t* hash_table, tk_compare_t cmp, void* ctx);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
hash_table | hash_table_t* | 哈希表对象。 |
cmp | tk_compare_t | 比较函数,为NULL则使用内置的比较函数。 |
ctx | void* | 比较函数的上下文。 |
hash_table_remove_all 函数
- 函数功能:
删除全部满足条件的元素。
- 函数原型:
ret_t hash_table_remove_all (hash_table_t* hash_table, tk_compare_t cmp, void* ctx);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
hash_table | hash_table_t* | 哈希表对象。 |
cmp | tk_compare_t | 比较函数,为NULL则使用内置的比较函数。 |
ctx | void* | 比较函数的上下文。 |
hash_table_size 函数
- 函数功能:
返回全部元素个数。
- 函数原型:
int32_t hash_table_size (hash_table_t* hash_table);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | int32_t | 返回元素个数。 |
hash_table | hash_table_t* | 哈希表对象。 |
buckets 属性
buckets。
- 类型:darray_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
compare 属性
元素比较函数。
- 类型:tk_compare_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
destroy 属性
元素销毁函数。
- 类型:tk_destroy_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |
hash 属性
元素哈希函数。
- 类型:tk_hash_t
特性 | 是否支持 |
---|---|
可直接读取 | 是 |
可直接修改 | 否 |