做專案遇到需要使用到鍵值對的,一般我們會優先考慮map,multimap。
最近在看cocos2d-x原始碼,發現了乙個更高效的用法uthash
標頭檔案uthash.h在cocos2dx\support\data_support\下可以找到
下面是乙個簡單的使用:
#include "uthash.h"
#include #include /*這個uthash必須構造乙個結構體*/
struct packet
;int main()
hash_add_int(hash_packet, key, pkt);
printf ("insert item. key=%d,value=%p \n", i, pkt);
} printf ("hash count = %d \n", hash_count(hash_packet));
/*通過key查詢*/
for (i=0; i<13; i++)
printf ("find item. key=%d,value=%p \n", i, tmp);
} printf ("hash count = %d \n", hash_count(hash_packet));
/*遍歷這個hash表*/
struct packet* mytemp = null;
for (mytemp = hash_packet; mytemp != null; mytemp = (packet*)mytemp->hh.next)
printf (" %d => %s \n", mytemp->key, mytemp->msg);
/*刪除節點*/
for (i=0; i<13; i++)
/*刪除節點不會釋放你的空間必須自己釋放*/
hash_del(hash_packet, tmp);
free(tmp);
printf ("delete itme. key=%d,value=%p \n", i, tmp);
} printf ("hash count = %d \n", hash_count(hash_packet));
system("pause");
return 0;
}
c語言中雜湊表uthash的使用(持續補充)
struct hashtable struct hashtable hashtable null 查詢到的結果會返回給tem。struct hashtable find struct hashtable hashtable,int key void insert struct hashtable h...
在C語言程式設計時使用uthash
一 uthash介紹 hash操作可以將資料通過key進行標識,提高查詢效率,例如字典操作。c語言不像其他的高階語言本身並沒有實現hash相關的庫,當需要在c語言程式設計中需要使用hash操作時,可以使用開源的uthash。uthash不是庫,只是編寫的標頭檔案,可以將uthash.h包含在原始碼中...
簡單好用的hash表 uthash
在軟體開發中,不可不免的會使用到hash表,hash表的優點這裡就不說了,以下介紹乙個hash表的c實現,uthash是用巨集實現的,使用的時候非常方便,只用包含uthash.h即可。uthash的三個資料結構 typedef struct ut hash bucket ut hash bucket...