struct hashTable{
int key;
int val;
UT_hash_handle hh;//一定要有的定义
}
struct hashTable* hashtable = NULL;
查找到的结果会返回给tem。
struct hashTable* find(struct hashTable** hashtable, int key){
struct hashTable* tem = malloc(sizeof(struct hashTable));
HASH_FIND_INT(*hashtable, &key, tem);
return tem;
}
void insert(struct hashTable** hashtable, int key, int val){
struct hashTable* tem = malloc(sizeof(struct hashTable));
tem->val = val;
tem->key = key;
HASH_ADD_INT(*hashtable, key, tem);//"key" 是具体的键名, 会在编译的时候被宏替换
}
要从哈希表中删除结构,必须具有指向它的指针。(如果只有键,请先执行HASH_FIND以获取结构指针)。
void del(struct hashTable** hashtable, int key){
struct hashTable* tem = find(hashtable, key);
HASH_DEL(*hashtable, tem);
free(tem);
}
后续遇到了新的再继续补充?????
原文:https://www.cnblogs.com/LoveStrawberry/p/14087081.html