首页 > 编程语言 > 详细

c语言中哈希表uthash的使用(持续补充)

时间:2020-12-04 19:03:43      阅读:305      评论:0      收藏:0      [点我收藏+]

定义


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;
}

插入


  • HASH_ADD_INT表示添加的键值为int类型。
  • HASH_ADD_STR表示添加的键值为字符串类型。
  • HASH_ADD_PTR表示添加的键值为指针类型。
  • HASH_ADD表示添加的键值可以是任意类型。
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);
}

后续遇到了新的再继续补充?????

c语言中哈希表uthash的使用(持续补充)

原文:https://www.cnblogs.com/LoveStrawberry/p/14087081.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!