c语言中的hashmap

定义

c 复制代码
struct hashTable {
    int key;
    int val;
    UT_hash_handle hh;
};

struct hashTable* hashtable;

struct hashTable* find(int ikey) {
    struct hashTable* tmp;
    HASH_FIND_INT(hashtable, &ikey, tmp);
    return tmp;
}

void insert(int ikey, int ival) {
    struct hashTable* it = find(ikey);
    if (it == NULL) {
        struct hashTable* tmp = malloc(sizeof(struct hashTable));
        tmp->key = ikey, tmp->val = ival;
        HASH_ADD_INT(hashtable, key, tmp);
    } else {
        it->val = ival;
    }
}

使用

c 复制代码
hashtable = NULL;
struct hashTable* it = find(target - nums[i]);
insert(nums[i], i);
相关推荐
lcu1115 小时前
Java 学习40:继承
java
p***q785 小时前
【保姆级教程】apache-tomcat的安装配置教程
java·tomcat·apache
历程里程碑5 小时前
各种排序法大全
c语言·数据结构·笔记·算法·排序算法
2501_941148615 小时前
C++实时数据处理实战:多线程与异步IO结合高性能代码解析
java·后端·struts
u***u6855 小时前
C++在系统中的异常处理
java·开发语言·c++
树在风中摇曳5 小时前
带哨兵位的双向循环链表详解(含 C 代码)+ LeetCode138 深度解析 + 顺序表 vs 链表缓存机制对比(图解 CPU 层级)
c语言·链表·缓存
空空kkk6 小时前
SpringMVC——拦截器
java·数据库·spring·拦截器
文涛是个小白呀6 小时前
Java集合大调研
java·学习·链表·面试
我也爱吃馄饨6 小时前
写的webpack插件如何适配CommonJs项目和EsModule项目
java·前端·webpack
Seven976 小时前
剑指offer-43、左旋转字符串
java