我试图在C中创建一个通用哈希表。我已经阅读了几种不同的实现,并遇到了几种不同的方法。
首先是使用像这样的宏:http : //attractivechaos.awardspace.com/khash.h.html
第二种是使用带有2个void指针的结构,如下所示:
struct hashmap_entry
{
void *key;
void *value;
};
Run Code Online (Sandbox Code Playgroud)
据我所知,这种方法并不是很好,因为它意味着映射中的每个条目都至少需要2种分配:一种分配给键,一种分配给值,而与存储的数据类型无关。(那正确吗???)
如果没有采用宏路由,就无法找到一种使它通用的不错的方法。有人有任何提示或示例可以帮助我吗?