### Function

# GLib HashTable new

#### Declaration [src]

    GHashTable*
    g_hash_table_new (
      GHashFunc hash_func,
      GEqualFunc key_equal_func
    )

#### Description [src]

Creates a new `GHashTable` with a reference count of 1.

Hash values returned by `hash_func` are used to determine where keys are stored within the `GHashTable` data structure. The g_direct_hash(), g_int_hash(), g_int64_hash(), `g_double_hash()` and `g_str_hash()` functions are provided for some common types of keys. If `hash_func` is `NULL`, `g_direct_hash()` is used.

`key_equal_func` is used when looking up keys in the `GHashTable`. The g_direct_equal(), g_int_equal(), g_int64_equal(), `g_double_equal()` and `g_str_equal()` functions are provided for the most common types of keys. If `key_equal_func` is `NULL`, keys are compared directly in a similar fashion to g_direct_equal(), but without the overhead of a function call. `key_equal_func` is called with the key from the hash table as its first parameter, and the user-provided key to check against as its second.

This function is not directly available to language bindings.

#### Parameters

`hash_func`

  Type: `GHashFunc`

  A function to create a hash value from a key.

`key_equal_func`

  Type: `GEqualFunc`

  A function to check two keys for equality.

#### Return value

Type: `GHashTable`

A new `GHashTable`.

The caller of the function takes ownership of the data, and is responsible for freeing it.