1、定义
struct GHashTable {
/* No available fields */
}
2、方法
2.1 new
GHashTable*
g_hash_table_new (
GHashFunc hash_func,
GEqualFunc key_equal_func
)
创建一个引用计数为1的GHashTable
对象。
hash_func
返回对象hash值,hash值决定对象存放位置。有一些通用类型的哈希函数:g_direct_hash、g_int_hash、g_int64_hash、g_double_hash、g_str_hash。如果为NULL,默认使用g_direct_hash。
key_equal_func
用于查找哈希表中的键值。预置的比较函数如下:g_direct_equal、g_int_equal、g_int64_equal、g_double_equal、g_str_equal。如果为NULL,默认使用g_direct_equal的机制。
2.2 new_full
GHashTable*
g_hash_table_new_full (
GHashFunc hash_func,
GEqualFunc key_equal_func,
GDestroyNotify key_destroy_func,
GDestroyNotify value_destroy_func
)
创建一个引用计数为1的GHashTable
对象,和g_hash_table_new
类似。唯一的区别是可以指定内存释放函数,在移除元素时会调用内存释放函数。
2.42版本开始,允许释放函数递归的删除所有函数,但是只有在应用程序持有引用计数时才可以。因此在调用g_hash_table_unref
释放引用计数之前,需要调用g_hash_table_remove_all
释放所有元素。
key_destroy_func
代表键值释放函数,value_destroy_func
代表value释放函数。