什么是一组整数集的简单C库?

con*_*lee 8 c integer set

我必须修改一个C程序,我需要包含一组无符号整数集.也就是说,我有数百万个整数集(每个整数集包含3到100个整数),我需要将它们存储在某个结构中,让我们称之为目录,可以在对数时间告诉我是否给定整数集已存在于目录中.需要在目录上定义的唯一操作是查找和插入.

对于有用的数据结构内置支持的语言来说,这很容易,但我是C的外国人并且在Google上四处看看(令人惊讶的是)没有令人满意地回答我的问题.该项目看起来很正确:

http://uthash.sourceforge.net/

但我需要提出自己的哈希密钥生成器.

这是一个标准的简单问题,所以我希望有一个标准的简单解决方案.

qui*_*ars 3

这取决于您要如何处理数据。但也许tsearch已经做了你想要的事情。您还可以为每个集合构建一个排序数组并使用 bsearch 查找值,尽管插入过程中性能可能会受到影响。

编辑:如果您正在寻找(外部)库,您会在这里找到一些 C 和 C++ 哈希表实现的比较。本文作者编写了一个名为khash的通用标头实现。所以你编译的二进制文件没有任何额外的依赖项。