利用uthash.h实现hashmap-创新互联
                                            
                                                下载uthash.h
文章名称:利用uthash.h实现hashmap-创新互联
分享URL:http://www.jxjierui.cn/article/pojpc.html
                                            
                                        【官网下载】:官网下载

下载zip后,找到src目录,将其复制到C语言的头文件夹中。
如果使用的是vs:
1.随便打开一个c语言的文件,ctrl+鼠标正建打开头文件。
2.
打开文件夹后,复制进去,重启vs即可。
typedef struct my_map{int key;
    int value;
    UT_hash_handle hh; // make this structure hashable
}map;
//结构体中的key与value的类型可以根据情况自己定义
map* hashMap = NULL;void hashMapAdd(int key,int value) {map* s;
    HASH_FIND_INT(hashMap, &key, s);
    if (s == NULL) {s = (map*)malloc(sizeof(map));
        s->key = key;
        HASH_ADD_INT(hashMap, key, s);
    }
    s->value = value;
}	 HASH_FIND_INT(hashMap, &key, s);
		hashmap:从哪里查找,传入指针
		key:查找的元素,传入指针
		s:out,结构存放,指针HASH_ADD_INT(hashMap, key, s);
		hashmap:添加到哪里,传入指针
		key:添加的元素
		s:要添加的结构指针HASH_ADD_INT表示添加的键值为int类型
HASH_ADD_STR表示添加的键值为字符串类型
HASH_ADD_PTR表示添加的键值为指针类型
HASH_ADD表示添加的键值可以是任意类型int hashMapFind(int key) {map* s;
    s = (map*)malloc(sizeof(map));
    HASH_FIND_INT(hashMap, &key, s);
    return s->value;
}void hashMapDelete(int key) {map* s;
    HASH_FIND_INT(hashMap, &key, s);
    if (s != NULL) {HASH_DEL(hashMap, s);
    }
}void  hashMapClean() {map* current, * tmp;
    HASH_ITER(hh, hashMap, current, tmp) {HASH_DEL(hashMap, current);
        free(current);
    }
}void Traverse() {map* s;
    for (s = hashMap; s != NULL; s = s->hh.next) {printf("key: % d, value : % d\n", s->key, s->value);
    }
}#includetypedef struct my_map{int key;
    int value;
    UT_hash_handle hh; // make this structure hashable
}map;
map* hashMap = NULL;
void hashMapAdd(int key,int value) {map* s;
    HASH_FIND_INT(hashMap, &key, s);
    if (s == NULL) {s = (map*)malloc(sizeof(map));
        s->key = key;
        HASH_ADD_INT(hashMap, key, s);
    }
    s->value = value;
}
int hashMapFind(int key) {map* s;
    s = (map*)malloc(sizeof(map));
    HASH_FIND_INT(hashMap, &key, s);
    return s->value;
}
void hashMapDelete(int key) {map* s;
    HASH_FIND_INT(hashMap, &key, s);
    if (s != NULL) {HASH_DEL(hashMap, s);
    }
}
void  hashMapClean() {map* current, * tmp;
    HASH_ITER(hh, hashMap, current, tmp) {HASH_DEL(hashMap, current);
        free(current);
    }
}
void Traverse() {map* s;
    for (s = hashMap; s != NULL; s = s->hh.next) {printf("key: % d, value : % d\n", s->key, s->value);
    }
}
 你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:利用uthash.h实现hashmap-创新互联
分享URL:http://www.jxjierui.cn/article/pojpc.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 