Description A GHashTable provides associations between keys and values which is optimized so that given a key, the associated value can be found very quickly. Note that neither keys nor values are copied when inserted into the GHashTable, so they must exist for the lifetime of the GHashTable. This means that the use of static strings is OK, but temporary strings (i.e. those created in buffers and those returned by GTK+ widgets) should be copied with g_strdup() before being inserted. If keys or values are dynamically allocated, you must be careful to ensure that they are freed when they are removed from the GHashTable, and also when they are overwritten by new insertions into the GHashTable. It is also not advisable to mix static strings and dynamically-allocated strings in a GHashTable, because it then becomes difficult to determine whether the string should be freed. To create a GHashTable, use g_hash_table_new(). To insert a key and value into a GHashTable, use g_hash_table_insert(). To lookup a value corresponding to a given key, use g_hash_table_lookup() and g_hash_table_lookup_extended(). To remove a key and value, use g_hash_table_remove(). To call a function for each key and value pair use g_hash_table_foreach() or use a iterator to iterate over the key/value pairs in the hash table, see GHashTableIter. To destroy a GHashTable use g_hash_table_destroy().