uthash雜湊的使用

2021-06-19 21:43:49 字數 1136 閱讀 7147

做專案遇到需要使用到鍵值對的,一般我們會優先考慮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...