我必须修改一个 C 程序,我需要包含一组无符号整数集。也就是说,我有数百万组整数(每个整数组包含 3 到 100 个整数),我需要将它们存储在某种结构中,我们称之为目录,它可以在对数时间内告诉我是否给定目录中已存在整数集。唯一需要在目录上定义的操作是查找和插入。
这在内置支持有用数据结构的语言中会很容易,但我是 C 语言的外行,环顾 Google 并没有(令人惊讶地)令人满意地回答我的问题。这个项目看起来不错:
http://uthash.sourceforge.net/
但我需要想出我自己的哈希 key 生成器。
这是一个标准的、简单的问题,所以我希望有一个标准的、简单的解决方案。
最佳答案
这取决于您要对数据做什么。但也许tsearch已经做了你想要的。您还可以为每个集合构建一个排序数组并使用 bsearch 查找值,尽管在插入过程中性能可能会受到影响。
编辑:如果您正在寻找(外部)库,您会找到一些 C 和 C++ 哈希表实现的比较 here .这篇文章的作者写了一个通用的头文件实现,叫做khash。 .所以你编译的二进制文件没有任何额外的依赖。
关于c - 什么是一组整数集的简单 C 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500447/