一、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...