C :uthash
参考: [1] uthash | 学步园 [2] 源码 [3] 官方文档 [4] [5] 一、哈希表的概念及作用 在一般的线性表或者树中,我们所储存的值写它的存储位置的关系是随机的。因此,在查找过程中,需要一系列的与关键字的比较。 算法的时间复杂度与比较的次数有关。 线性表查找的时间复杂度为O(n) 而 平衡二叉树的查找的时间复杂度为O(log(n)) 。无论是采用线程表或是树进行存储,都面临面随着数据量的增大,查找速度将不同程度变慢的问题。而 哈希表 正好解决了这个问题。它的主要思想是通过将值与其存储位置相关联,来实现快速的随机存储。 二、uthash的基本用法 由于C语言中,并没有对hash表这类的高级数据结构进行支持,即使在目前通用的C++中,也只支持栈、队列等几个数据结构,对于map,其实是以树结构来实现的,而不是以hash表实现。 uthash是一个C语言的hash表实现。它 以宏定义的方式实现hash表 ,不仅加快了运行的速度,而且与关键类型无关的优点。 uthash使用起来十分方便,只要将头文件 uthash.h 包含进去就可以使用。 目前,uthash的最新版本(1.9)支持如下平台: Linux Mac OS X Windows using vs2008 and vs 2010 Solaris OpenBSD 通常这足够通用了。唯一的不足是在windows下