This hash table module maps C strings to arbitrary objects (void pointers). For example, to store a file object using the pathname as a key:
struct hash_table *h; h = hash_table_create(0,0);
FILE * file = fopen(pathname,"r");
hash_table_insert(h,pathname,file); file = hash_table_remove(h,pathname);
To list all of the items in a hash table, use hash_table_firstkey and hash_table_nextkey like this:
char *key; void *value;
hash_table_firstkey(h);
while(hash_table_nextkey(h,&key,&value)) {
printf("table contains: %s\n",key);
}
Go to the source code of this file.
Typedefs | |
| typedef unsigned(* | hash_func_t )(const char *key) |
| The type signature for a hash function given to hash_table_create. | |
Functions | |
| hash_table * | hash_table_create (int buckets, hash_func_t func) |
| Create a new hash table. | |
| void | hash_table_delete (struct hash_table *h) |
| Delete a hash table. | |
| int | hash_table_size (struct hash_table *h) |
| Count the entries in a hash table. | |
| int | hash_table_insert (struct hash_table *h, const char *key, const void *value) |
| Insert a key and value. | |
| void * | hash_table_lookup (struct hash_table *h, const char *key) |
| Look up a value by key. | |
| void * | hash_table_remove (struct hash_table *h, const char *key) |
| Remove a value by key. | |
| void | hash_table_firstkey (struct hash_table *h) |
| Begin iteration over all keys. | |
| int | hash_table_nextkey (struct hash_table *h, char **key, void **value) |
| Continue iteration over all keys. | |
| unsigned | hash_string (const char *s) |
| A default hash function. | |
|
|
The type signature for a hash function given to hash_table_create.
|
|
||||||||||||
|
Create a new hash table.
|
|
|
Delete a hash table. Note that this function will not delete all of the objects contained within the hash table.
|
|
|
Count the entries in a hash table.
|
|
||||||||||||||||
|
Insert a key and value. This call will fail if the table already contains the same key. You must call hash_table_remove to remove it. Also note that you cannot insert a null value into the table.
|
|
||||||||||||
|
Look up a value by key.
|
|
||||||||||||
|
Remove a value by key.
|
|
|
Begin iteration over all keys. This function begins a new iteration over a hash table, allowing you to visit every key and value in the table. Next, invoke hash_table_nextkey to retrieve each value in order.
|
|
||||||||||||||||
|
Continue iteration over all keys. This function returns the next key and value in the iteration.
|
|
|
A default hash function.
|
1.3.9.1