Initializes a key/value pair iterator and associates it with
hash_table
. Modifying the hash table after calling this function
invalidates the returned iterator.
The iteration order of a #GHashTableIter over the keys/values in a hash table is not defined.
GHashTableIter iter;
gpointer key, value;
g_hash_table_iter_init (&iter, hash_table);
while (g_hash_table_iter_next (&iter, &key, &value))
{
// do something with key and value
}
a #GHashTable
Advances iter
and retrieves the key and/or value that are now
pointed to as a result of this advancement. If %FALSE is returned,
key
and value
are not set, and the iterator becomes invalid.
Removes the key/value pair currently pointed to by the iterator from its associated #GHashTable. Can only be called after g_hash_table_iter_next() returned %TRUE, and cannot be called more than once for the same key/value pair.
If the #GHashTable was created using g_hash_table_new_full(), the key and value are freed using the supplied destroy functions, otherwise you have to make sure that any dynamically allocated values are freed yourself.
It is safe to continue iterating the #GHashTable afterward:
while (g_hash_table_iter_next (&iter, &key, &value))
{
if (condition)
g_hash_table_iter_remove (&iter);
}
Replaces the value currently pointed to by the iterator from its associated #GHashTable. Can only be called after g_hash_table_iter_next() returned %TRUE.
If you supplied a value_destroy_func
when creating the
#GHashTable, the old value is freed using that function.
the value to replace with
Removes the key/value pair currently pointed to by the iterator from its associated #GHashTable, without calling the key and value destroy functions. Can only be called after g_hash_table_iter_next() returned %TRUE, and cannot be called more than once for the same key/value pair.
A GHashTableIter structure represents an iterator that can be used to iterate over the elements of a #GHashTable. GHashTableIter structures are typically allocated on the stack and then initialized with g_hash_table_iter_init().
The iteration order of a #GHashTableIter over the keys/values in a hash table is not defined.