在C語言程式設計時使用uthash

2021-10-22 18:24:44 字數 1085 閱讀 7454

一、uthash介紹

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 ;

struct my_struct *users = null;

void add_user(int user_id, char *name)

strcpy(s->name, name);

}struct my_struct *find_user(int user_id)

void delete_user(struct my_struct *user)

void delete_all()

}void print_users()

}int name_sort(struct my_struct *a, struct my_struct *b)

int id_sort(struct my_struct *a, struct my_struct *b)

void sort_by_name()

void sort_by_id()

int main(int argc, char *ar**)

}delete_all(); /* free any structures */

return 0;

}

c語言中雜湊表uthash的使用(持續補充)

struct hashtable struct hashtable hashtable null 查詢到的結果會返回給tem。struct hashtable find struct hashtable hashtable,int key void insert struct hashtable h...

在使用import語句時

在使用import語句時,總出現問題,就上網找了一下,在csdn上乙個叫stillbright發的,8錯,分享一下!你也可以參考 假設有兩個存放在d src下的原始檔cited.和citing.cited.檔案內的程式 package classes.shang public class cited...

C語言程式設計時遇到的若干問題

還是基礎不夠紮實,有一些基本的問題都不是很清楚,這裡記錄一下,以備遺忘。1.關於sizeof與strlen 如果變數是陣列,那麼呼叫sizeof的結果就是陣列的大小,但是如果只是乙個指標,那麼他只是返回乙個sizeof 型別 的值。而strlen是判斷字串的長度,所以乙個陣列的最後一位是strlen...