Function

GLibHashTablefind

Declaration

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

Description

Calls the given function for key/value pairs in the GHashTable until predicate returns TRUE. The function is passed the key and value of each pair, and the given user_data parameter. The hash table may not be modified while iterating over it (you can’t add/remove items).

Note, that hash tables are really only optimized for forward lookups, i.e. g_hash_table_lookup(). So code that frequently issues g_hash_table_find() or g_hash_table_foreach() (e.g. in the order of once per every entry in a hash table) should probably be reworked to use additional or different data structures for reverse lookups (keep in mind that an O(n) find/foreach operation issued for all n values in a hash table ends up needing O(n*n) operations).

Available since:2.4

Parameters

hash_table

Type: GHashTable

A GHashTable.

The data is owned by the caller of the function.
predicate

Type: GHRFunc

Function to test the key/value pairs for a certain property.

user_data

Type: gpointer

User data to pass to the function.

The argument can be NULL.
The data is owned by the caller of the function.

Return value

Type: gpointer

The value of the first key/value pair is returned, for which predicate evaluates to TRUE. If no pair with the requested property is found, NULL is returned.

The data is owned by the called function.
The return value can be NULL.