Klib C 通用库开源项目

我要开发同款
匿名用户2015年03月14日
27阅读
开发技术C/C++
所属分类程序开发、常用工具包
授权协议MIT

作品详情

Klib是一个C通用库,是一个轻量级和独立的Glib版本。

包括如下常用组件:

khash.h:具有开放地址的通用哈希表。

kbtree.h:基于B树的通用搜索树。

kavl.h:通用侵入式AVL树。

ksort.h:通用排序,包括introsort,merge排序,heap排序,comb排序,Knuth随机播放和k-small算法。

kseq.h:通用流缓冲区和FASTA / FASTQ格式解析器。

kvec.h:通用动态数组。

klist.h:通用单链列表和内存池。

kstring.{h,c}:基本的字符串库。

kmath.{h,c}:包括MT19937-64 伪随机数生成器,基本非线性编程和一些特殊数学函数的数值例程。

ketopt.h:具有类似getopt_long的API的可移植命令行参数解析器。

示例代码:

#include "khash.h"KHASH_MAP_INIT_INT(m32, char)        // instantiate structs and methodsint main() {    int ret, is_missing;    khint_t k;    khash_t(m32) *h = kh_init(m32);  // allocate a hash table    k = kh_put(m32, h, 5, &ret);     // insert a key to the hash table    if (!ret) kh_del(m32, h, k);    kh_value(h, k) = 10;             // set the value    k = kh_get(m32, h, 10);          // query the hash table    is_missing = (k == kh_end(h));   // test if the key is present    k = kh_get(m32, h, 5);    kh_del(m32, h, k);               // remove a key-value pair    for (k = kh_begin(h); k != kh_end(h); ++k)  // traverse        if (kh_exist(h, k))          // test if a bucket contains data            kh_value(h, k) = 1;    kh_destroy(m32, h);              // deallocate the hash table    return 0;}
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论