你能为C推荐一个好的通用数据容器库(纯C,而不是C ++)吗? 我只需要基本结构,如动态数组,哈希表等。
(注意:“好”我指的是快速+优雅的界面)。
答案 0 :(得分:15)
Glib不足以满足您的需求吗? :-) developer.gnome.org/glib
答案 1 :(得分:14)
Apache Portable Runtime
包括这些领域的模块。
答案 2 :(得分:14)
我认为Dave Hanson的C Interfaces and Implementations既快又优雅。它包括许多不同类型的容器,一些字符串处理,多精度算法,异常,几个不同的内存管理器。好东西。
有一本书,但您不需要购买它来使用该软件。
答案 3 :(得分:7)
我之前建议MemSL,但网站和公司似乎已经灭绝。我现在建议glib,它涵盖了大部分相同的功能,并得到了整个Linux社区的广泛支持和使用。
我在实现x86内核时使用了MemSL,我发现它是通用的,可靠的,没有bug。
从描述中: C内存结构库概述(MemSL)
Memory Structures Library,简称MemSL,是一个有用的例程库,允许在C中有效使用复杂的数据结构.MessSL包含用于管理的例程:
答案 4 :(得分:5)
答案 5 :(得分:5)
您可能还想查看iMatix SFL,引用他们的网页:
iMatix的SFL(标准功能库)是一种便携式功能 用于C / C ++程序的库。 SFL是多年发展的结果, 并作为开源软件提供,以利于 互联网社区。 SFL是用ANSI C编写的,并已移植到MS-DOS,Windows,OS / 2,Linux 和其他UNIX系统(IBM AIX,SunOS,HP / UX,Solaris,NetBSD,FreeBSD, SCO OpenServer,>数字UNIX)和数字OpenVMS。它配备了完整的资源和 HTML中的文档。
SFL提供了大约450个涵盖这些领域的功能:
- 压缩,加密和编码;
- 数据类型转换和格式化;
- 日期,时间和日历;
- 目录和环境访问;
- 用户和进程组;
- 反转的位图索引;
- 符号表;
- 错误消息文件;
- 配置文件;
- 字符串操作和搜索;
- 文件访问;
- 互联网套接字访问;
- 互联网编程(MIME,CGI);
- SMTP(电子邮件)访问;
- 服务器(批处理)编程;
- 节目追踪。
SFL是您可以使用和分发用于私人或商业的免费软件 根据{{3}}的目的。
有关API本身的更多详细信息,请参阅SFL License Agreement。
答案 6 :(得分:4)
Sglib“是C的通用库,受C ++标准模板库的启发”
答案 7 :(得分:2)
答案 8 :(得分:2)
您可能有兴趣查看qLibc。
http://en.wikipedia.org/wiki/Qlibc http://www.qdecoder.org/qlibc/
它是一个通用的完整C / C ++库,包含各种容器和通用库例程。