Stardew Engine
Loading...
Searching...
No Matches
StringKeyHashMap.h
Go to the documentation of this file.
1#ifndef STRING_KEY_HASH_MAP_H
2#define STRING_KEY_HASH_MAP_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8
9#include <stdbool.h>
10
13struct HashMap
14{
16 int size;
18 void* pData;
19 struct KVP* pHead;
20 struct KVP* pEnd;
22};
23
28void HashmapInit(struct HashMap* pMap, int capacity, int valSize);
29
35void HashmapInitWithLoadFactor(struct HashMap* pMap, int capacity, int valSize, float loadFactor);
36
41void* HashmapSearch(struct HashMap* pMap, char* key);
42
43
49void* HashmapInsert(struct HashMap* pMap, char* key, void* pVal);
50
55bool HashmapDeleteItem(struct HashMap* pMap, char* key);
56
59void HashmapDeInit(struct HashMap* pMap);
60
64void HashmapPrintEntries(struct HashMap* pMap, const char* hashMapName);
65
67{
69 struct KVP* pOnKVP;
70};
71
74
79
80#ifdef __cplusplus
81}
82#endif
83
84#endif
char * NextHashmapKey(struct HashmapKeyIterator *)
Definition StringKeyHashMap.c:379
void HashmapDeInit(struct HashMap *pMap)
Definition StringKeyHashMap.c:391
bool HashmapDeleteItem(struct HashMap *pMap, char *key)
Definition StringKeyHashMap.c:316
void * HashmapInsert(struct HashMap *pMap, char *key, void *pVal)
Definition StringKeyHashMap.c:236
struct HashmapKeyIterator GetKeyIterator(struct HashMap *pHashMap)
Get an iterator object that you can call "NextHashmapKey" with to iterate through the hashmaps keys.
Definition StringKeyHashMap.c:370
void HashmapInitWithLoadFactor(struct HashMap *pMap, int capacity, int valSize, float loadFactor)
same as HashmapInit but sets load factor as well
Definition StringKeyHashMap.c:65
void HashmapInit(struct HashMap *pMap, int capacity, int valSize)
initializes the hashmap struct to a decfault value. you can change fLoadFactor afterwards but it sets...
Definition StringKeyHashMap.c:59
void * HashmapSearch(struct HashMap *pMap, char *key)
Search for a key in the hash map, returns a pointer to the value or NULL if not present.
Definition StringKeyHashMap.c:128
void HashmapPrintEntries(struct HashMap *pMap, const char *hashMapName)
Definition StringKeyHashMap.c:185
A hash map with strings for keys and any type for values doubles in size when the load factor is met,...
Definition StringKeyHashMap.h:14
float fLoadFactor
Definition StringKeyHashMap.h:21
int capacity
Definition StringKeyHashMap.h:15
int size
Definition StringKeyHashMap.h:16
struct KVP * pEnd
Definition StringKeyHashMap.h:20
struct KVP * pHead
Definition StringKeyHashMap.h:19
int valueSize
Definition StringKeyHashMap.h:17
void * pData
Definition StringKeyHashMap.h:18
Definition StringKeyHashMap.h:67
struct HashMap * pHashMap
Definition StringKeyHashMap.h:68
struct KVP * pOnKVP
Definition StringKeyHashMap.h:69
Definition StringKeyHashMap.c:28