在C语言编程时使用uthash

一、uthash介绍

uthash github地址:http://troydhanson.github.io/uthash/userguide.html

Hash操作可以将数据通过Key进行标识,提高查找效率,例如字典操作。

C语言不像其他的高级语言本身并没有实现Hash相关的库,当需要在C语言编程中需要使用hash操作时,可以使用开源的UtHash。

UtHash不是库,只是编写的头文件,可以将uthash.h包含在源码中进行使用。例如:

#include "uthash.h"

这样就可以直接使用uthash提供的相关Hash操作。

uthash支持如下的Hash操作:

1)添加/替换

2)查找

3)删除

4)统计

5)遍历

6)排序

二、开始使用uthash

当包含了uthash.h头文件后,就可以使用uthash的类型和操作了

1、声明一个需要Hash的数据

当一个数据需要进行Hash操作时,需要在该数据中包含hash handle,标识该数据可以hash操作,例如

struct my_struct {

    int myKey;

    char Info[10];

    UT_hash_handle hh;

};

其中这里将myKey作为Hash的key值,

UT_hash_handle hh作为hash的操作句柄,记住这里的变量名是要要求的

1)变量名为hh,是指可以直接使用基于整数、指针、字符串进行Hash的句柄,也就是说整数、指针、字符串对应的hash函数已内部集成,在使用uthash提供的宏操作时,不需要再体现hash函数,对应着简化uthash宏。

2)其它变量名,是指需要使用用户自定义的hash函数,在对应的uthash宏中,需要其它相关的参数来携带更多的用户信息进行hash操作。

这里我们仅以基本的整数为例介绍,使用的都是简化uthash宏。

2、声明一个uthash初始空指针

struct my_struct *users = NULL;

<
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值