有人知道任何 C 容器库吗?我正在寻找一些东西,提供链表,数组,哈希表等的标准实现,很多与 C + + STL 相同的方式。关键问题是:
Chuck Falconer 有一个不错的 C 语言哈希库,包含一个 C + + 接口,点击网页上的 hashlib.zip 下载。
Ben Pfeff 有一个非常好的、文档非常完善的二进制和平衡树库 GNU libavl,它实现了大多数主要的树结构,包括二进制搜索树、 AVL 树、红黑树和每个树的线程化版本。
Libavl 是根据 LGPL (2.0.3版本)授权的,hashlib 是 GPL。
就数组和链表而言,我不确定您在寻找什么,因为前者直接受到语言的支持,而后者通常足够琐碎,可以在不需要库的情况下实现。
我只是在寻找 map/dictionary 容器的 C 实现时遇到了 SGLIB。不幸的是,没有地图,但它似乎包括集装箱你问。我不知道这有多好吃。
Http://sglib.sourceforge.net.
我一直在使用一个从 Hanson 的“ C 接口和实现”一书中发展起来的库。他的消息来源可以在
CII 图书网站
一切都是抽象数据类型。有列表,集合,表(地图)。
#include "queue.h"获得对单链表、单链尾队列、列表和尾队列的实现的访问。
#include "queue.h"
我发现 D · J · 伯恩斯坦(D.J. Bernstein,http://cr.yp.to/djbdns.html)提出的一种用于在内存中存储任意对象的通用缓存,它干净、简单,而且超级快。在 djdns tarball 中查找 cache. h 和 cache. c。
Sglib 是一个优秀的通用数据结构库,该库目前提供的通用实现用于:
它非常快,油嘴滑舌的更快,灵感来自于标准模板库
另一个解决方案是 迷人的混沌软件.C 宏库: H: C 中高效的 B 树库。 H: C 中快速轻量级哈希表库。 H: C 中的简单向量容器。
Kulesh Shanmugasundaram 提供了通用的 Linux 内核链接列表和基于 Linux 内核链接列表的通用散列表。
Sglib 和 Attractive浑沌软件以及 Linux 内核链表都是 C 宏库。使用 void*在 C 语言中实现通用容器可能效率低下。C 宏模仿 C + + 模板,并且与 C + + 模板一样高效。
void*
有些我听说过(但从未用过)的是
这似乎涵盖了大多数容器和一些算法。也没有授权,所有的头包含-’代码可以使用没有限制。http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=13867&lngWId=3
Ccl 怎么样? 这是一个 C 的容器库,也许它最适合你。你可以看到 https://code.google.com/p/ccl/。 好好享受吧。