函数

GLibHashTablefind

自 2.4 以来

声明 [src]

gpointer
g_hash_table_find (
  GHashTable* hash_table,
  GHRFunc predicate,
  gpointer user_data
)

描述 [src]

调用给定的函数,它的键/值对在 GHashTable 中,直到 predicate 返回 TRUE。函数将键、值和给定的 user_data 参数传递给每个对。在遍历哈希表时,可能无法修改哈希表(不能添加/删除项目)。

请注意,哈希表真正优化的只是正向查找,即 g_hash_table_lookup()。因此,频繁发出 g_hash_table_find()g_hash_table_foreach()(例如,在哈希表中每个条目的顺序)的代码可能需要重写以使用额外的或不同的数据结构进行反向查找(请注意,为哈希表中的所有n个值执行的O(n)寻找/foreach操作最终需要O(n*n)个操作)。

自 2.4 以来可用

参数

hash_table

类型: GHashTable

一个 GHashTable

数据由函数的调用者拥有。
predicate

类型: GHRFunc

用于测试键/值对的一定特性的函数。

user_data

类型: code gpointer

传递给函数的用户数据。

此参数可以 NULL
数据由函数的调用者拥有。

返回值

类型: code gpointer

返回第一个键/值对的值,其中 predicate 评估为 TRUE。如果没有找到具有请求特性的对,则返回 NULL

数据由被调用函数拥有。
返回值可以为 NULL