Uthash常用接口
# uthash 四大核心接口刷题必背记忆技巧 前提哈希结构体必须带 UT_hash_handle hh;存储 int 类型 key 统一用这组函数。 哈希表头struct Hash* table NULL; ## 1. HASH_ADD_INT 插入元素 用法HASH_ADD_INT(表头, key成员名, 待插入结构体指针); 示例HASH_ADD_INT(table, key, tmp); 记忆ADD添加INT代表key是int ## 2. HASH_FIND_INT 查找元素 用法HASH_FIND_INT(表头, 要查找的key变量, 接收结果的结构体指针); 示例HASH_FIND_INT(table, counter, tmp); 记忆FIND查找传key的地址 ## 3. HASH_DEL 删除单个元素 用法HASH_DEL(表头, 要删的结构体指针); 示例HASH_DEL(table, tmp); 记忆DELdelete删除只传结构体指针 ## 4. HASH_ITER 遍历整个哈希表 c struct Hash *cur, *next; HASH_ITER(hh, table, cur, next) { // 操作cur } 记忆ITERiterate遍历固定模板hh、表头、当前、临时下一个 # 超简记忆口诀 增ADD、查FIND、删DEL、遍历ITER int类型key后缀统一带_INT ADD传结构体FIND传key地址。 # 配套记忆小规律 1. 只要是**插入**HASH_ADD_xxx第三个参数是结构体指针 2. 只要是**查找**HASH_FIND_xxx第二个参数是key的地址 3. 删除不需要key直接给结构体指针就能删 4. 做题只存int键全程只用带_INT的函数不用STR/LONG等其他版本 # 刷题极简流程对应记忆 1. 不存在 → HASH_ADD_INT 存进去 2. 存在 → HASH_FIND_INT 取出旧下标计算长度 3. 程序结束释放内存HASH_ITER遍历 HASH_DEL逐个删除free