需要一个通用的库,纯C
你能为C推荐一个好的通用数据容器库(纯C,而不是C ++)吗? 我只需要基本结构,如动态数组,哈希表等。
(注意:“好”我指的是快速+优雅的界面)。
我认为Dave Hanson的C接口和实现既快又优雅。 它包括许多不同类型的容器,一些字符串处理,多精度算法,exception,几个不同的内存管理器。 好东西。
有一本书,但你不需要购买它来使用该软件。
Glib不足以满足您的需求吗? 🙂 developer.gnome.org/glib
Apache Portable Runtime
包括这些领域的模块。
- 平台定义
- 内部内存分配
- primefaces操作
- 动态对象处理
- 用于操纵环境的function
- 错误代码
- 文件信息
- 文件I / O处理function
- 文件名匹配function
- 杂项库例程
- 命令参数解析
- 全球锁定例程
- 哈希表
- 通用图书馆例程
- MMAP(记忆图)例程
- 网络例程
- 民意调查
- 内存池function
- 便携性例程
- 处理锁定例程
- 随机函数
- 环宏实现
- 共享内存例程
- 信号处理
- 字符串例程
- 内部APR支持function
- 表和数组函数
- 条件变量例程
- Thread Mutex例程
- 线程和进程函数
- 读者/作者锁定例程
- 时间例程
- 用户和组ID服务
我之前推荐过MemSL ,但网站和公司似乎已经灭绝。 我现在建议使用glib ,它涵盖了大部分相同的function,并且在整个Linux社区中得到广泛支持和使用。
我在实现x86内核时使用了MemSL,我发现它是通用的,可靠的,没有bug。
来自描述:C内存结构库概述(MemSL)
Memory Structures Library,简称MemSL,是一个有用的例程库,允许在C中有效使用复杂的数据结构.MessSL包含用于管理的例程:
- 多维动态分配arrays
- 单链接列表
- 双链表
- 循环链接列表
- 使用链接列表剪切,复制和粘贴
- 链接列表的多个位置指针
- 堆栈
- 队列
- 出队
- 集
- 手袋
- 表
- 字典
- 具有单独链接的哈希表
- 使用用户定义的分页的哈希表
- 具有动态分页的哈希表
- 二叉搜索树
- 螺纹二进制搜索树
- AVL平衡二进制搜索树
- AVL平衡螺纹二进制搜索树
- 优先级堆
- 完全动态的优先搜索队列
您可能还想查看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,> Digital UNIX)和数字OpenVMS。 它带有完整的HTML源代码和文档。
SFL提供约450种function,涵盖以下领域:
- 压缩,加密和编码;
- 数据类型转换和格式化;
- 日期,时间和日历;
- 目录和环境访问;
- 用户和进程组;
- 反转位图索引;
- 符号表;
- 错误消息文件;
- 配置文件;
- 字符串操作和搜索;
- 文件访问;
- Internet套接字访问;
- Internet编程(MIME,CGI);
- SMTP(电子邮件)访问;
- 服务器(批量)编程;
- 程序追踪。
SFL是免费软件,您可以根据SFL许可协议使用和分发用于私人或商业目的。
有关API本身的更多详细信息,请参见此处 。
Sglib “是C的通用库,受C ++标准模板库的启发”
您可能有兴趣查看qLibc。
http://en.wikipedia.org/wiki/Qlibc http://www.qdecoder.org/qlibc/
它是一个通用的完整C / C ++库,包含各种容器和通用库例程。