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);
相关推荐
帧栈21 小时前
开发避坑指南(58):Java Stream 按List元素属性分组实战指南
java
Da Da 泓21 小时前
LinkedList模拟实现
java·开发语言·数据结构·学习·算法
海琴烟Sunshine21 小时前
Leetcode 14. 最长公共前缀
java·服务器·leetcode
城管不管21 小时前
Lambda
java
龙茶清欢1 天前
5、urbane-commerce 微服务统一依赖版本管理规范
java·运维·微服务
GilgameshJSS1 天前
STM32H743-ARM例程9-IWDG看门狗
c语言·arm开发·stm32·单片机·嵌入式硬件·学习
Hello_Embed1 天前
STM32 智能垃圾桶项目笔记(一):超声波模块(HC-SR04)原理与驱动实现
c语言·笔记·stm32·单片机·嵌入式软件·嵌入式项目
菠萝地亚狂想曲1 天前
极简文件列表
c语言
海琴烟Sunshine1 天前
Leetcode 26. 删除有序数组中的重复项
java·算法·leetcode
RoboWizard1 天前
移动固态硬盘连接手机无法读取是什么原因?
java·spring·智能手机·电脑·金士顿