| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 数据结构与算法 -> C语言哈希表UT_hash的使用方法详解 -> 正文阅读 |
|
|
[数据结构与算法]C语言哈希表UT_hash的使用方法详解 |
|
由于C语言本身不存在哈希,因此,我们可以调用开源的第三方头文件,这只是一个头文件:uthash.h,使用时只需要在文件首部编写#include<uthash.h>即可。 uthash的使用
这里我们将id作为一个索引值,也就是键值,将name作为value。 注意:一定要包含UT_hash_handle hh(在之后的个别函数中可能会用到这个UT_hash_handle);hh不需要初始化,它可以命名为任何名称,一般都命名为hh。 ?查找元素
在上述代码中,第一个参数users是哈希表,第二个参数是user_id的地址(一定要传递地址)函数的用法而已不必太在意原理。最后s是输出变量。当可以在哈希表中找到相应键值时,s返回给定键的结构,当找不到时s返回NULL。 添加元素????????HASH_ADD_INT表示添加的键值为int类型
HASH_ADD_INT函数中,第一个参数users是哈希表,第二个参数id是键字段的名称。最后一个参数s是指向要添加的结构的指针。
? 替换元素实际上 HASH_REPLACE_INT 和 HASH_ADD_INT 相差无几,先查看某一键值是否存在,如果不存在就不予以替换,如果存在就予以替换
删除元素
注意:
循环删除
删除哈希表所有元素删除的是一种 “ 引用 ”
计算哈希表元素个数HASH_COUNT可以直接进行调用
排序哈希表
HASH_SORT 函数第二个参数是指向比较函数的指针。它必须接受两个指针参数(要比较的项目),并且如果第一个项目分别在第二个项目的前面,等于或后面排序,则必须返回小于零,零或大于零的int。 (这与标准C库中的strcmp或qsort使用的约定相同)。
name_sort和id_sort的两个排序函数示例
?对排序函数的封装,名字和id两者不同的排序
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/5 8:27:50- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |