函数
GLibHashTablesteal_extended
since: 2.58
声明 [src]
gboolean
g_hash_table_steal_extended (
GHashTable* hash_table,
gconstpointer lookup_key,
gpointer* stolen_key,
gpointer* stolen_value
)
描述 [src]
在GHashTable中查找一个键,偷走原始键和关联的值,如果找到键则返回TRUE
。如果没有找到键,返回FALSE
。
如果找到了,偷走的键和值将从散列表中移除,而不会调用键和值的销毁函数,其所有权将转让给此方法的调用者,就像在g_hash_table_steal()中那样。这无论是否请求了stolen_key
或stolen_value
输出参数都是这样。
如果hash_table的哈希和相等函数是NULL安全的,可以通过传递NULL
给lookup_key
。
字典实现针对所有值与其键相同进行了优化,例如使用g_hash_table_add()。在2.82之前,从这样的字典中偷走键和值时,值是NULL
。从2.82开始,返回的值和键将是相同的。
since: 2.58
参数
hash_table
-
类型:
GHashTable
A
GHashTable
。数据由函数的调用者所有。 lookup_key
-
类型:
gconstpointer
要查找的键。
参数可以是 NULL
。数据由函数的调用者所有。 stolen_key
-
类型:
gpointer*
原始键的返回位置。
该参数将由函数设置。 参数可以是 NULL
。 stolen_value
-
类型:
gpointer*
返回与键关联的值的位置。
该参数将由函数设置。 参数可以是 NULL
。