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);
相关推荐
dengyuezhe80601 分钟前
《C++ 异常机制与智能指针:从原理到实现》
android·java·c++
于指尖飞舞1 分钟前
java后端面试题(常用集合极简)
java·开发语言·面试
我星期八休息13 分钟前
Linux系统编程—mmap文件映射
java·linux·运维·服务器·数据库·mysql·spring
phltxy18 分钟前
Spring AI 智能咨询系统综合实战
java·人工智能·spring
java1234_小锋22 分钟前
Spring Boot 中 Starter 是什么?它的核心规范有哪些?请说明如何自定义一个 Starter。
java·spring boot·后端
良枫22 分钟前
自进化 agent:核心模块一任务规划器 Planner
java·服务器·windows
AI人工智能+电脑小能手25 分钟前
【大白话说Java面试题 第114题】【并发篇】第14题:说一下悲观锁的优点和缺点?
java·开发语言·面试
让我上个超影吧29 分钟前
Claude Code 源码看 Agent 系统设计
java·ai·ai编程
plainGeekDev29 分钟前
网络状态监听 → ConnectivityManager + Flow
android·java·kotlin
devilnumber30 分钟前
Java 迭代器(Iterator)完全指南:从入门到实战
java·开发语言·迭代器