全部博文(16)
分类: LINUX
2010-07-05 20:15:17
最开始我把这个库命名为cstl,经历了半年的开发,我完成了1.0版本。我将它发到了CU上,大家觉得还可以,同时有人鼓励我将它开源,我想也是,可以 与别人分享与别人合作,于是我就在google code上开了一个开源项目,改名为libcstl。
虽然libcstl 1.0开发了半年,但是1.0还是不完善,对于自定义的类型支持不够完善,此外还有很多别的缺陷。于是开始了2.0的开发,2.0很大程度上改变了1.0 的使用方式,并且引进了很多新功能,也支持windows了。
很感谢支持libcstl的朋友们,同时希望大家多多支持。libcstl开源项目地址:
可以使你了解更多。
libcstl 2.0与1.0相比有了很大的改进,下面列出了不同点:
类 型和功能 | 1.0 | 2.0 | 说 明 |
deque_t | 支持 | 支持 | |
list_t | 支持 | 支持 | |
vector_t | 支持 | 支持 | |
slist_t | 支持 | 支持 | |
set_t | 支持 | 支持 | |
multiset_t | 支持 | 支持 | |
map_t | 支持 | 支持 | 更新了默认的数据 比较规 则。 |
multimap_t | 支持 | 支持 | 更新了默认的数据 比较规则。 |
hash_set_t | 支持 | 支持 | 更新了默认的哈希 函数。 |
hash_multiset_t | 支持 | 支持 | 更新了默认的哈希 函数。 |
hash_map_t | 支持 | 支持 | 更新的默认的哈希 函数和默 认的数据比较规则。 |
hash_multimap_t | 支持 | 支持 | 更新的默认的哈希 函数和默认的数据比较规则。 |
priority_queue_t | 支持 | 支持 | |
queue_t | 支持 | 支持 | |
stack_t | 支持 | 支持 | |
多种 iterator_t | 支持 | 支持 | |
range_t | |
支持 | 一种表示数据范围 的类型。 |
数值算法 | 支持 | 支持 | |
通用算法 | 支持 | 支持 | |
针对基本类型的函 数 | 支持 | 支持 | |
针对 libcstl内部 类型的函数 | |
支持 | 增加了针对容器以 及工具类型的函数和谓词。 |
string_t | 支持 | 支持 | |
pair_t | 支持 | 支持 | 更新了默认的数据 比较规 则。 |
bool_t | 支持 | 支持 | |
支持c style字符串 | |
支持 | 增加了对于c style字符串类型的支持。 |
支持用 户自定义类型 | 部分支持 | 支持 | 通过类型注册机制 完善了对用户自定义类型的支持。 |
类型注册 | |
支持 | 增加了类型注册和 类型复制功能。 |
支持Linux | 支持 | 支持 | |
支持 Windows | |
支持 | 添加了 VS2005和 VS2008的编译工程。 |
chinaunix网友2011-03-07 10:25:28
我是 libcstl 的支持者,在使用过程中发现点问题,不知道是有意这么做的还是属于她本身的缺陷。关于 string_append_subcstr 函数,当我的字符串中包含 '\0' 时,如字符串 "hello\0, world",我即使给它指定长度 13 也无法满足需求,'\0' 后的数据都会被截断,像 c++ 中的 stl 里可以使用 buffer += string("hello\0, world", 13) 实现,这种应用对于串口解析非常有用,不知道是我使用的函数不当还是什么问题,希望引起 wb 大人关注。
chinaunix网友2010-11-19 23:24:40
又试了一下,总结一下VC2008下编译,会遇到的两个问题和解决办法 1. 提示不能找到'cstl/xxx.h'文件 解决方法 1) 把Additional Include Directories的内容由..\..\include,改为..\.. 2) 再用文本编辑器打开libcstl.vcproj,全局替换..\..\include\为..\..\cstl\ 2. 提示缺少va_copy() 解决方法:在cstl_types.h的第32行,加上如下代码: #ifdef _MSC_VER #define va_copy(dst, src) ((dst) = (src)) #endif 参考:http://stackoverflow.com/questions/558223/vacopy-porting-to-visual-c http://kerneltrap.org/mailarchive/git/2009/8/17/9549/thread OK,在VC2008下可以正常编译运行了。
chinaunix网友2010-11-19 22:55:29
另外,在VC2008下,Additional Include Directories的内容也不应该是..\..\include,而应是..\..