项目主页:http://libcstl.googlecode.com
想深入的了解libcstl-2.0请参考源码包中doc/目录下的libcstl_user_guide.pdf和libcstl_reference_manual.pdf。
libcstl getting started guide.
libcstl是什么,为什么会有libcstl?
libcstl是一个应用于C语言编程的函数库,它将编程过程中经常使用的数据结构如向量、链表、集合、树等封 装成相应的数据结构并提供一系列的操作函数来操作保存在这些数据结构中的数据,同时它还将常用的算法如 排序、查找、划分等封装成相应的算法函数并提供迭代器来使两者之间建立联系方便使用。从libcstl的名字 就可以看出它于STL有一定的关系,是的libcstl的接口和实现都是模仿了STL。
libcstl的产生主要是基于使用C语言编程过程中经常要使用向量、链表、集合等数据结构和排序、查找、划分 等算法,但是对于这些数据结构和算法每次都要重复的实现,如果有一个通用的类似于STL的数据结构和算法 的库就可以节约时间和成本,这样libcstl就诞生了。
编译和安装
首先将下载的压缩包libcstl-2.0.0.tar.gz解压(这里只列出了Linux上的编译和安装方式):
[wb@ActiveSys ~]$ tar zxvf libcstl-2.0.0.tar.gz
...
[wb@ActiveSys ~]$ cd libcstl-2.0.0
然后执行make编译源代码:
[wb@ActiveSys libcstl-2.0.0]$ make
接下来是安装libcstl库,安装需要root权限:
[wb@ActiveSys libcstl-2.0.0]# make install
同样卸载库和更新库也需要root权限:
[wb@ActiveSys libcstl-2.0.0]# make uninstall
[wb@ActiveSys libcstl-2.0.0]# make update
Windows上的编译可在解压后目录中的built-win目录下找到vc8和vc9两个目录,分别是VS2005和VS2008的工程文件目录。
libcstl基本概念
libcstl由多个分组成,容器,迭代器,算法和函数 容器: 容器以某种结构形式管理数据的集合,每一种容器都有各自的特点. 迭代器: 迭代器与容器相关联,应用与容器或容器的子集,它的主要好处在于为容器提供了一个统一的接口.迭代器是容器 和算法之间的桥梁,它使得算法独立于特定的容器. 算法: 算法是对数据集合进行某些操作,它可以排序,查找,修改或其他一些操作.算法使用迭代器作为输入,这样算法可 以独立于容器,实现在任意容器上的操作.同时算法还使用特定的函数对容器中的数据进行特定的操作. 函数: 函数只是规定了算法中使用的函数形式,并且定义了一些算法中常用的函数,可以作为算法的自定义规则.
文章来源: http://bbs.chinaunix.net/viewthread.php?tid=1694499&page=1&authorid=20598149