当前位置: 首页 > 图文教程 > 开发语言 > C/C++ > cstl -- c语言编写通用数据结构和常用算法库(模仿SGI STL)

C/C++
2009年编程开发语言的使用率
C++对象模型笔记:dynamic binding
cstl -- c语言编写通用数据结构和常用算法库(模仿SGI STL)
子串匹配:不回溯算法
C++ Builder 访问 USB 口的方法
C++中二维数组的动态分配
数组和指针在编译的时候的区别
如何利用doxygen生成pdf文档
有关C++析构函数的异常(Exceptions in Destructors)
C++模板学习之函数对象之谓词
5月编程语言排行榜:D语言风采不再
一个C++类实现文件全盘搜索
C语言编程宝典之一 读书笔记
C语言嵌入式系统编程修炼(内存操作)
C++内存管理
带头结点的双循环链表
有关VA_LIST的用法
C++标准库简介(转)
一个栈类的实现(链栈)
C 引用与指针的比较

C/C++ 中的 cstl -- c语言编写通用数据结构和常用算法库(模仿SGI STL)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 283 ::
收藏到网摘: n/a

cstl是使用C语言编写的一个通用的数据结构和常用的算法库,它模忙SGI STL的接口和实现,支持vector,list,deque等等常用的数据结构,同时还支持排序,查找,划分等常用的算法,此外cstl也包含迭代器的类型,它作为容器和算法之间的桥梁。cstl为C语言编程中的数据管理提供了便利。

    在使用C语言编程的过程中,很多工作都是在管理数据,很多时候我都是在一遍又一遍的开发通用的数据结构如list,我想C语言中如果有一个像的STL那样的库那就节省了很多的时间和精力,但是在网上没有找到,所以决定自己写一个类似的库。

    库的特点就是要通用,如果一个list只能保存int类型或者是针对每一种类型都要有一个相应的list来保存如保存int类型的list_int保存 double类型的叫list_double,那就很麻烦并且也不够通用,但是cstl做到了数据结构的通用型cstl中的容器可以保存任何类型,不管是 int还是double或者是用户自定义的类型abc_t同一个容器都可以保存,例如cstl中双向链表容器list_t既可以保存int又可以保存 double,连用户自定义的类型abc_t都可以保存,只要通过一步创建就可以:
创建一个保存int类型的list_t:
list_t t_l = create_list(int);
这样这个t_l中保存的数据就是int类型的数据了。
又如:
typedef struct _tagabc
{
...
}abc_t;
list_t t_l2 = create_list(abc_t);
这样t_l2中保存的就是abc_t类型的数据了