哈希第三方头文件uthash的使用
哈希函数库
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的使用相关推荐
- Qt Creator添加第三方头文件和类库(经验篇)
Qt Creator添加第三方头文件和类库 在Qt Creator的项目中添加头文件和库 最近的项目用到工业线阵相机,需要利用沟通相机,开发出独立的成像软件,所以才有了对于qt中添加sdk中的一些类库 ...
- Qt工程pro文件的简单配置(尤其是第三方头文件和库)
Qt开发中,pro文件是对正工程所有源码.编译.资源.目录等的全方位配置的唯一方式,pro文件的编写非常重要,以下对几个重要项进行说明(win和linux,mac平台通用配置) 注释 以"# ...
- c++头文件包含技巧
C++ 中类的声明和类的定义分开几乎成了一个不成文的规定.这样做的好处是使得类的声明和实现分开,清晰明了,同时便于库函数发布.但是在实际编程中由此也常常 引起了一些由于头文件的包含顺序问题而产生的符号 ...
- 【C 语言】文件操作 ( 文件加密解密 | 使用第三方 DES 加密解密库 | 头文件导入 | 兼容 C++ 语言 | 加密解密函数说明 )
文章目录 一.导入第三方库头文件 二.头文件说明 1.兼容 C++ 语言 2.头文件导入限制 3.加密解密函数说明 一.导入第三方库头文件 对文件进行加密 , 将文件中的数据分成若干块 , 一块一块的 ...
- Android ndk 使用第三方so和头文件编译
为什么80%的码农都做不了架构师?>>> 我们在使用ndk的时候,有时候可能会使用到第三放提供的so和头文件.一般他们是提供对外暴露的接口,供开发者去开发. 这里我举个例子,看 ...
- iOS中引入第三方静态库头文件找不到的问题解决方案
在前几次项目中,因为要引入一些自己打包好的静态库,也就是第三方静态库,但是出了很多问题,有时会遇到莫名其妙的问题,明明有这个文件,但是就是显示头文件找不到.为了在以后能够快速处理这种问题,所以在这里做 ...
- CocoaPods导入的库其头文件导入的方法
尽管CocoaPods使用十分方便,但其导入的第三方框架还是要经过几步操作,才能供项目使用; 第一步:导入库 1>-在终端进入项目的根目录; 2>-输入:touch Podfile,则项目 ...
- 使用class-dump导出其他应用头文件
class-dump是一个可以导入其他应用的工具,算是逆向工程中一个入门级的工具. 下载地址:http://stevenygard.com/projects/class-dump 选择dmg文件下载后 ...
- C 语言编程 — 头文件
目录 文章目录 目录 前文列表 头文件 只引用一次头文件 有条件引用 global.h 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基本语法> <C ...
- python怎么写文件-python 头文件怎么写
本文主要以python2为例.首先介绍一下Python头文件的编程风格,然后再给大家详细介绍import部分的基本用法.这两个部分就是Python中头文件的组成模块. 编程风格#!/usr/bin/e ...
最新文章
- Pascal 错误代码及含义
- SSH,telnet终端中文显示乱码解决办法
- mysql delete in死锁_mysql 执行delete引发死锁问题
- 你可能不知道的按位与、或运算技巧
- VC6下使用WebLink控件
- 两招让陌生网络访问者现出原形
- C#异或运算符的使用【C#】
- js最小化浏览器_「译」解析、抽象语法树(ast) +如何最小化解析时间的5个技巧...
- qt android刘海屏状态栏,华为Mate30 Pro设计曝光:仍配刘海屏+3D结构光
- .net 读取xml文件
- 3位水仙花数计算pythonoj_简述 取模运算Modulo Operation 及其与 取余运算Complementation 区别联系...
- gcc oracle mysql_[转]Windows下用GCC连接MySQL数据库
- django 文件上传 研究
- python泰勒公式_泰勒展开式利用python数值方法证明
- python批量将png格式转换为jpg格式,并保存到新的文件夹
- 生成新浪短地址 php,生成新浪的短链接和还原新浪短链接类(方法)总结
- 下载(导出)pdf模板文件(比如:审批单)
- 怎样将「插件化」接入到项目之中?
- 使用 Python 构建图片搜索引擎
- offsetLeft与style.left区别