C语言常用功能库:Klib

分享到:

Klib 是一个C语言常用功能库,是一个轻量级和独立的 Glib 版本。大多数组件都是独立的外部库,除了标准C库,并且相互独立。要使用这个库的一个组成部分,你只需要几个文件复制到你的源代码树,而不必担心库的依赖。 Klib求效率和小内存占用。有些部件,如khash.h,kbtree.h,ksort.h和kvec.h,都是相似的算法或数据结构中所有的编程语言的在速度和存储器使用方面最有效的实现方式。

包括如下常用组件:

示例代码:

#include "khash.h"
KHASH_MAP_INIT_INT(m32, char)
// instantiate structs and methods
int 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;
}


项目主页:http://www.open-open.com/lib/view/home/1426332589451

昵    称:
验证码:

相关文档:

  • Native Client SDK
    Google 发布了首个开发者预览版的 Native Client SDK, 开发者已经可以通过该SDK开发应用程序了。Google表示此举让 Native Client 走出了重要的第...
  • C语言内存泄漏检测工具 MemLeak
    MemLeak 是一个C语言内存泄漏检测工具。...
  • 底层的 C 程序库 skalibs
    skalibs 是一组用于一般用途的、底层的 C 程序库,可替换标准 C 库的一些方法,主要用于构建很小的静态二进制文件。...
  • CMake Tools for Visual Studio
    这是一个 Visual Studio 的扩展为 CMake 语言提供了语法高亮和 IntelliSense 支持。...
  • 揭秘Facebook官方底层C++函数 - Folly
    Facebook近日公布了其官方底层C++函数Folly,Folly(该缩略语表示Facebook开源代码库)其实是C++11组件库,这些组件在设计时着眼于实用性和...
  • 跨平台的 Sockets 库 :C++ Sockets
    C++ Sockets这一个对BSD风格Sockets的跨平台C++封装。 实现包括 TCP、UDP、ICMP、SCTP 协议。已实现的应用协议包括有 SMTP、HTTP(S)、Ajp (1.3)。具有...
  • Facebook Folly源代码分析
    Folly 是 Facebook 的一个开源C++11组件库,它提供了类似 Boost 库和 STL 的功能,包括散列、字符串、向量、内存分配、位处理等,用于满足...
  • C语言编译器 Cilk
    Cilk多线程编程技术最早由MIT开 发,是一个基于Gcc编译器的开源项目。后来开发者创建了一个创业公司,推出改进的私有版本,整合到Wind...
  • C++ 简易scoket Server
    C++ 简易scoket Server...
  • 类似于Java Spring的C++依赖注入库:autumnframework
    Autumn Framework 项目是用C++实现依赖注入。它支持属性setter注入和构造器注入。它可以在多个平台上编译。它支持POCO(普通的C + +对象)并...
  • Platinum UPnP SDK - 跨平台的C++库
    Platinum UPnP SDK 是一个跨平台的C++库,利用该库,你可以很容易就构建出DLNA/UPnP控制点(DLNA/UPnP Control Point)和DLNA/UPnP设备(DLNA/UPnP Device)....
  • Linux C 的工具包:JustKit
    JustKit 是一个简单易于使用的 Linux C 的工具包...
  • Qt集成开发环境 Edyuk
    Edyuk 是一款用于 Qt 4 的 IDE(集成开发环境)。它是自由、开源软件,具有轻量、快速的优点。当前的主要功能包括:qmake 项目管理、集...
  • C++微量级软件开发包:Micro-Development-Kit
    mdk(Micro-Development-Kit)微量级软件开发包,使用c++开发,是一个跨平台的开发包,支持linux32/linux64/win32/win64的类库,提供几个常用类,主要...
  • GTK界面开发工具 GtkBuilder
    GtkBuilder 的作用和 libglade 一样,用来加载 glade 文件, 所以,如果使用 GtkBuilder 来代替 libglade ,这样就可以在使用过程中,减少一个依赖....
  • C++集成开发工具 KDevelop
    KDevelop 是一个免费,开源的IDE(Integrated Development Environment) 。支持多种平台包括:MS Windows, Mac OS X, Linux, Solaris 和 FreeBSD....
  • C++ 插件框架:Pluma Framework
    Pluma 是一个开源的C++插件管理框架,以助于在应用程序中动态载入DLL而无需在意内部实现,它是轻量级、简化设计的。...
  • cppcheck - 静态 C/C++ 代码分析
    cppcheck是静态的C/C++ 代码分析工具,用以检查内存泄漏,错配的内存分配和释放,缓冲区溢出,以及更多的问题。...
  • 基于Udp的Socket网络编程聊天程序
    基于Udp的Socket网络编程聊天程序...
  • C语言的KD树实现 kdtree
    kdtree 是一个简单易用的 KD-trees 的 C 语言实现。...