开源hash代码uthash的原理与用法

  • 说明

说明

需要包含头文件 #include “uthash.h”
参考leedcode1
添加链接描述

struct hashTable {int key;int value;UT_hash_handle hh;
};struct hashTable *hash;struct hashTable *find(int key)
{struct hashTable *tmp;HASH_FIND_INT(hash, &key, tmp);return tmp;
}void insert(int key, int value)
{struct hashTable *it = find(key);if (it == NULL) {struct hashTable *tmp = (struct hashTable *)malloc(sizeof(struct hashTable));tmp->key = key;tmp->value = value;HASH_ADD_INT(hash, key, tmp);} else {it->value = value;}
}
/*** Note: The returned array must be malloced, assume caller calls free().*/
int* twoSum(int* nums, int numsSize, int target, int* returnSize){hash = NULL;for (int i = 0; i < numsSize; i++) {struct hashTable *tmp = find(target - nums[i]);if (tmp != NULL) {int *ret = (int *)malloc(sizeof(int) * 2);ret[0] = tmp->value;ret[1] = i;*returnSize = 2;return ret;}insert(nums[i], i);}*returnSize = 0;return NULL;
}

C中哈希开源hash代码uthash的原理与用法相关推荐

  1. C开源hash代码uthash的用法总结(1)

    uthash 是C的比较优秀的开源代码,它实现了常见的hash操作函数,例如查找.插入.删除等待.该套开源代码采用宏的方式实现hash函数的相关功能,支持C语言的任意数据结构最为key值,甚至可以采用 ...

  2. C开源hash代码uthash的用法总结(2)

    5.完整程序例子 5.1.key类型为int的完整的例子 #include <stdio.h> /* gets */ #include <stdlib.h> /* atoi, ...

  3. c开源hash项目 uthash的用法总结

    uthash 是C的比较优秀的开源代码,它实现了常见的hash操作函数,例如查找.插入.删除等待.该套开源代码采用宏的方式实现hash函数的相关功能,支持C语言的任意数据结构最为key值,甚至可以采用 ...

  4. html语言中注释标记,html注释代码<!--......--> 标签的用法详解

    别小看了简单的html注释代码标签,它的作用还是挺大的,对于复杂而庞大的代码量,有必要在需要说明,备注,解释的地方插入一些注释内容,方便以后编辑.修改.查询代码,还可以对某些不需要显示或执行的代码进行 ...

  5. python中merge函数怎么用_Python Merge函数原理及用法解析

    Merge函数的用法 简单来说Merge函数相当于Excel中的vlookup函数.当我们对2个表进行数据合并的时候需要通过指定两个表中相同的列作为key,然后通过key匹配到其中要合并在一起的val ...

  6. 那些开源程序中让人叹为观止的代码 - 3 保持元素纵横比

    本专栏尝试记录并分享一些个人在学习和使用开源程序代码的过程中,经意或者不经意间看到的个人感觉比较有参考价值的代码片段.个人感觉,并不是说能写或者能看得懂一些晦涩难懂的代码段子,就可以成为向别人炫耀的资 ...

  7. 那些开源程序中让人叹为观止的代码 - 1 浏览器特性判断

    浏览器特性判断 解决问题:判断某事件/方法在当前浏览器中是否支持 开源程序:Modernizr 众所周知,各个不同的浏览器对于代码渲染的实现也各自为政百花齐放,虽然有W3C在维护着标准,但是由于市面上 ...

  8. 【散列表(哈希表) Hash Table(上)】:Word文档中的单词拼写检查功能是如何实现的?

    Word 这种文本编辑器你平时应该经常用吧,那你有没有留意过它的拼写检查功能呢?一旦我们在 Word 里输入一个错误的英文单词,它就会用标红的方式提示"拼写错误".Word 的这个 ...

  9. 一个整合OkHttp 、Retrofit 、Volley 、RxJava、Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决

    一个整合OkHttp .Retrofit .Volley .RxJava.Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决 AndroidHttp 一个 ...

最新文章

  1. 电商系统的高并发设计和挑战
  2. cmd命令大全 DOS窗口命令
  3. 转载:如何将一个新函数加到MATLAB函数库中
  4. C#连接基于Java开发IM——Openfire
  5. maven(3)maven3.3.9使用入门
  6. java对象流读取完毕_从Java 8流中获取具有最大频率的对象
  7. 【Python】字符串(String)
  8. 计算机网络实验1线缆制作,计算机网络技术实验报告1双绞线的制作
  9. Unix/Linux 目录结构的来历
  10. python连接php_PHP+Python,轻量维护超轻松
  11. 腾讯第一大股东 Prosus 18亿美元收购 StackOverFlow
  12. System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部
  13. python中file和open_Python中的file和open简述
  14. unix环境高级编程(第三版)-读书笔记1
  15. (译)Cocos2d_for_iPhone_1_Game_Development_Cookbook:1.5播放视频文件
  16. 阿里大数据之路:数据模型篇大总结
  17. 《动手学深度学习》(PyTorch版)代码注释 - 47 【Image_augmentation】
  18. java解析HL7协议报文工具(v24版)
  19. 人像抠图软件哪个好?这些软件助你实现人像抠图
  20. createfile调用失败_Java NIO Files.createFile()以NoSuchFileException失败

热门文章

  1. Windows常用命令和快捷键大全
  2. 2012烟台市专场招聘会
  3. matlab-干涉条纹图像条纹间距的自动识别(干涉条纹处理的基本方法)
  4. 安全-认证授权、数据脱敏
  5. 单元测试 php,PHP单元测试PHPUnit简单用法示例
  6. java-php-python-ssm-SpringMVC的时鲜蔬菜配送系统-计算机毕业设计
  7. CentOS7 安装/使用 OneDrive
  8. 生成 vfp2c32.fll 的代码
  9. 超劲爆的在线网站分享,神一般的存在,尤其是第二个!
  10. 超越时间和空间,带你到n维去!