HASH_FIND_INT的用法
时间: 2023-08-01 14:13:24 浏览: 1659
HASH_FIND_INT是一个宏定义,用于在哈希表中查找一个整型键值对应的元素。
其函数原型为:
```
void HASH_FIND_INT(struct hashtable *head, const void *key, struct my_struct *out);
```
其中,head是哈希表的指针,key是要查找的整型键值,out是返回的元素指针。
使用时,需要先定义一个哈希表的结构体,然后创建一个哈希表,并把要查找的键值和对应的元素插入到哈希表中,然后再调用HASH_FIND_INT宏进行查找。
示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include "uthash.h"
struct my_struct {
int id;
char name[10];
UT_hash_handle hh;
};
int main()
{
struct my_struct *users = NULL;
struct my_struct *s;
// 插入元素
s = (struct my_struct*)malloc(sizeof(struct my_struct));
s->id = 1;
strcpy(s->name, "Tom");
HASH_ADD_INT(users, id, s);
// 查找元素
int key = 1;
HASH_FIND_INT(users, &key, s);
if (s != NULL) {
printf("name: %s\n", s->name);
} else {
printf("not found\n");
}
return 0;
}
```
在这个示例中,我们定义了一个名为my_struct的结构体,该结构体有两个成员变量:id和name。然后,我们创建了一个哈希表users,插入了一个元素(id=1, name="Tom"),然后调用HASH_FIND_INT宏查找键值为1的对应元素。如果找到了对应的元素,则返回该元素的指针;否则,返回NULL。
阅读全文