C 哈希表多类型输入

标签 c hashtable

作为一名进步的 C 程序员,我一直在研究哈希表。该表工作得很好,(在一定程度上)高效并且易于实现,但我遇到的一个问题是它只接受 const char * 作为值类型。我想实现一种拥有其他数据类型的方法,而不必为每种类型编写方法。这是因为我必须创建多个结构来保存每个数据,那么当然需要重写所有方法以匹配这些新结构,这将变得非常长并且容易出错。

有更简单的方法吗?

编辑

有关更多信息和示例,其中一种方法是 void InsertInto(Hash_Table DataBase, const char * key, const char * value);这很有效,因为键始终是字符串名称,但值类型不能只是 char,我还需要它是 int、float 和 double,以使其对我的使用有效。截至目前,我有 struct element { struct element * next, char * key, char * value };我还意识到,为了容纳所有类型,这需要变得不同。作为一个例子,我们将不胜感激,但并非完全必要。

最佳答案

没问题。只需传递一个带有关联大小的 void * 即可。转换为 unsigned char * 进行哈希处理。

关于C 哈希表多类型输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41918612/

相关文章:

c++ - 在 C++ 中实现哈希表

java - J2ME 中的哈希表效率

c - 在 C 中使用套接字的 HTTP 请求

c - 返回数组的安全性

list - 在 Lisp 中映射两个字符串列表(以简短的方式)?

C# 字典与列表用法

c++ - float 的散列函数

c - 字符串大小等于字符数

c - unsigned int arg 的二进制表示

c - 如何将c代码的函数调用树转储到文件中?