函数

GLibHashTablenew_full

声明 [src]

GHashTable*
g_hash_table_new_full (
  GHashFunc hash_func,
  GEqualFunc key_equal_func,
  GDestroyNotify key_destroy_func,
  GDestroyNotify value_destroy_func
)

描述 [src]

创建一个新的类似于 g_hash_table_new()GHashTable,引用计数为1,并允许指定在从 GHashTable 中移除条目时调用的释放关键和值分配的内存的函数。

自2.42版本起,销毁通知函数可以递归地从哈希表中删除更多项目。这仅在应用程序仍然持有哈希表的引用时才允许这样做。这意味着您可能需要在使用 g_hash_table_unref() 释放最后一个引用之前通过调用 g_hash_table_remove_all() 确保哈希表为空。

此函数不能直接提供给语言绑定。

参数

hash_func

类型: GHashFunc

创建从键生成哈希值的函数。

key_equal_func

类型: GEqualFunc

检查两个键是否相等的函数。

key_destroy_func

类型: GDestroyNotify

移除条目从 GHashTable 时用于释放关键分配的内存的函数,或者如果不想提供这样的函数,则为 NULL

value_destroy_func

类型: GDestroyNotify

移除条目从 GHashTable 时用于释放值分配的内存的函数,或者如果不想提供这样的函数,则为 NULL

返回值

类型: GHashTable

一个新的 GHashTable

函数的调用者拥有数据,并负责释放它。