哈希函数库
uthash库:
uthash简介

由于C语言本身不存在哈希,但是当需要使用哈希表的时候自己构建哈希会异常复杂。因此,我们可以调用开源的第三方头文件,这只是一个头文件:uthash.h。我们需要做的就是将头文件复制到您的项目中,然后:#include “uthash.h”。由于uthash仅是头文件,因此没有可链接的库代码。

使用uthash添加,查找和删除通常是常数时间的操作,此哈希的目标是简约高效。它大约有1000行C。它会自动内联,因为它是作为宏实现的。 uthash还包括三个额外的头文件,主要提供链表,动态数组和字符串。utlist.h为C结构提供了链接列表宏。utarray.h使用宏实现动态数组。utstring.h实现基本的动态字符串。 github下载链接:https://github.com/troydhanson/uthash

uthash的使用
定义结构体

这里我们将id作为一个索引值,也就是键值,将name作为value。

#include "uthash.h"
struct my_struct {int id;                    /* key */char name[10];UT_hash_handle hh;         /* makes this structure hashable */
};
/*声明哈希为NULL指针*/
struct my_struct *users = NULL;    /* important! initialize to NULL */

注意:一定要包含UT_hash_handle hh;hh不需要初始化。它可以命名为任何名称,但是我们一般都命名为hh。

更多借鉴:https://zhuanlan.zhihu.com/p/340692819

哈希第三方头文件uthash的使用相关推荐

  1. Qt Creator添加第三方头文件和类库(经验篇)

    Qt Creator添加第三方头文件和类库 在Qt Creator的项目中添加头文件和库 最近的项目用到工业线阵相机,需要利用沟通相机,开发出独立的成像软件,所以才有了对于qt中添加sdk中的一些类库 ...

  2. Qt工程pro文件的简单配置(尤其是第三方头文件和库)

    Qt开发中,pro文件是对正工程所有源码.编译.资源.目录等的全方位配置的唯一方式,pro文件的编写非常重要,以下对几个重要项进行说明(win和linux,mac平台通用配置) 注释 以"# ...

  3. c++头文件包含技巧

    C++ 中类的声明和类的定义分开几乎成了一个不成文的规定.这样做的好处是使得类的声明和实现分开,清晰明了,同时便于库函数发布.但是在实际编程中由此也常常 引起了一些由于头文件的包含顺序问题而产生的符号 ...

  4. 【C 语言】文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )

    文章目录 一.导入第三方库头文件 二.头文件说明 1.兼容 C++ 语言 2.头文件导入限制 3.加密解密函数说明 一.导入第三方库头文件 对文件进行加密 , 将文件中的数据分成若干块 , 一块一块的 ...

  5. Android ndk 使用第三方so和头文件编译

    为什么80%的码农都做不了架构师?>>>    我们在使用ndk的时候,有时候可能会使用到第三放提供的so和头文件.一般他们是提供对外暴露的接口,供开发者去开发. 这里我举个例子,看 ...

  6. iOS中引入第三方静态库头文件找不到的问题解决方案

    在前几次项目中,因为要引入一些自己打包好的静态库,也就是第三方静态库,但是出了很多问题,有时会遇到莫名其妙的问题,明明有这个文件,但是就是显示头文件找不到.为了在以后能够快速处理这种问题,所以在这里做 ...

  7. CocoaPods导入的库其头文件导入的方法

    尽管CocoaPods使用十分方便,但其导入的第三方框架还是要经过几步操作,才能供项目使用; 第一步:导入库 1>-在终端进入项目的根目录; 2>-输入:touch Podfile,则项目 ...

  8. 使用class-dump导出其他应用头文件

    class-dump是一个可以导入其他应用的工具,算是逆向工程中一个入门级的工具. 下载地址:http://stevenygard.com/projects/class-dump 选择dmg文件下载后 ...

  9. C 语言编程 — 头文件

    目录 文章目录 目录 前文列表 头文件 只引用一次头文件 有条件引用 global.h 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C ...

  10. python怎么写文件-python 头文件怎么写

    本文主要以python2为例.首先介绍一下Python头文件的编程风格,然后再给大家详细介绍import部分的基本用法.这两个部分就是Python中头文件的组成模块. 编程风格#!/usr/bin/e ...

最新文章

  1. Pascal 错误代码及含义
  2. SSH,telnet终端中文显示乱码解决办法
  3. mysql delete in死锁_mysql 执行delete引发死锁问题
  4. 你可能不知道的按位与、或运算技巧
  5. VC6下使用WebLink控件
  6. 两招让陌生网络访问者现出原形
  7. C#异或运算符的使用【C#】
  8. js最小化浏览器_「译」解析、抽象语法树(ast) +如何最小化解析时间的5个技巧...
  9. qt android刘海屏状态栏,华为Mate30 Pro设计曝光:仍配刘海屏+3D结构光
  10. .net 读取xml文件
  11. 3位水仙花数计算pythonoj_简述 取模运算Modulo Operation 及其与 取余运算Complementation 区别联系...
  12. gcc oracle mysql_[转]Windows下用GCC连接MySQL数据库
  13. django 文件上传 研究
  14. python泰勒公式_泰勒展开式利用python数值方法证明
  15. python批量将png格式转换为jpg格式,并保存到新的文件夹
  16. 生成新浪短地址 php,生成新浪的短链接和还原新浪短链接类(方法)总结
  17. 下载(导出)pdf模板文件(比如:审批单)
  18. 怎样将「插件化」接入到项目之中?
  19. 使用 Python 构建图片搜索引擎
  20. offsetLeft与style.left区别

热门文章

  1. PLC编程入门:梯形图
  2. 海思接收bt1120外同步视频流
  3. 转账引发数据一致性思考
  4. 新手入门Java疯狂讲义遇到的100个问题
  5. .Net程序员学用Oracle系列(18):PLSQL Developer 攻略
  6. 国家标准《软件工程 软件开发成本度量规范》GB/T 36964-2018正式发布
  7. python3.6+Appium实现手机微信自动回复
  8. 三相全控tc787触发电路_典型定频空调器的电路识图方法,一看就懂
  9. 微型计算机原理目录,微型计算机原理与应用 目录
  10. 深度解析,AI如何让创新变得更简单