C 哈希表库 native 支持每个键的多个值

标签 c hashtable

如果您想为一个键存储多个值,总是可以在哈希表和值之间塞入一个列表。但是,我认为这是相当低效的,因为:

无论如何,哈希表必须解决冲突,某种列表遍历也是如此。当它在存储桶中找到与查询键匹配的第一个键时,它不会停止,而是可以继续遍历存储桶,这可能比在遵循另一个间接寻址后遍历另一个列表提供更好的缓存性能。

有没有人知道默认支持此功能的库实现(理想情况下,它们也很 Shiny 、快速、哈希表以及 BSD 或类似许可)?我浏览了几个库,但没有一个是我想要的,glib 的 datasets最接近,但存储记录,而不是列表。

最佳答案

所以……类似 multimap 的东西?

Libgee , 建筑 GLib , 提供一个 MultiMap . (它是用 Vala 编写的,但已转换为纯 C。)

关于C 哈希表库 native 支持每个键的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8044429/

相关文章:

c - 在多个线程之间共享套接字描述符

c - 为什么在函数中声明一个字符串参数在C中需要一个指针?

C++:使用指向数组的指针

Java 字符串 : Is hashcode actually the hashvalue?

python - 为什么当通过 swig 从子进程调用时,使用 OpenMP 的共享库中的函数会挂起?

c - 正在填充未声明的结构数组

lisp - 普通口齿不清 : getting all keys of a given hash table as a list

python - python中强大快速的哈希函数(搜索算法)

Java 哈希表,带有 while 循环

c - 如何确保密码的长度没有限制?