函数

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_keystolen_value输出参数都是这样。

如果hash_table的哈希和相等函数是NULL安全的,可以通过传递NULLlookup_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

返回值

类型: gboolean

TRUE 如果键在 GHashTable 中被找到。