给程序员介绍一些C++开源库

发表于:2011-11-18 10:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:kanego    来源:51Testing软件测试网采编

  C++开源库,欢迎补充。

  C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被 严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如Android必定要推出原生的SDK)、各种跨平台应用的出现。

  开源C++库必须具有以下特点:必须是成熟的产品、跨平台的产品、相对通用的库。

  一、通用标准类

  STL:C++标准模板库,呵呵,它也是开源的嘛。

  boost:C++准标准库,它是强大地,江湖称之“千锤百炼”。

  -------若掌握,必横行世界。

  deelx (轻量级的正则表达式解析类库,国产),boost里有强大的正则表达式解析库,但如果你只想要一个表达式解析,不想要拖上庞大的boost库时……支持一下国货。

  iconv /iconvpp : (C形式的编码转换函数库,

  二、XML解析库

  C++的XML相关库不少,但是大部分其实都是C库,使用起来自然不那么轻便。其中基于DOM的有TinyXml,基于SAX的当然是Xerces。前者小巧快捷,便于使用,适合做数据交换。后者则是全功能的XML解析器。

  哥更倾向于TingyXml.小巧啊!

  xerces-c :最强大的XML解析库了,不是仅仅在开源库里,你尽管把商业的算在内。当然,它的变体,被IBM拿去卖钱的那个版本,多了数百兆的东东来支持各国编码转换,是更强大,但我觉得有小小的,开源的iconv在前不就够了?

  根据博友的一篇博文对三个轻型xml解析开源库:SlimXml、TinyXml、RapidXml,对比如下:

  解析这个3.3万行,1.5M大小的xml,三个库分别花了

  SlimXml: 22ms

  TinyXml: 54ms

  RapidXml: 4ms!

  结论是,RapidXml果然很强悍,居然比SlimXml快5倍多。

  比较欣慰的是,在没有很关注效率的情况下,SlimXml仍然比TinyXml快2.5倍。SlimXml走的是简单小巧路线,源代码只有 32k,而TinyXml和RapidXml的源码分别是147k和141k,有这样的效率可以满意了。因为这个库主要还是针对几十上百行的小文件,解析特别大的xml不在我考虑的范围之内。

  还有irrlicht(鬼火引擎)的irrXMl解析器。

  xsd (XML 与 C++数据结构的绑定工具)。(商业使用要钱)

  三、数据库

  我比较喜欢OTL(用于连接数据库)。其他的没用过

  四、多媒体类

  ---摘录别处,自己,没用过

  SDL (Simple DirectMedia Layer/多媒体直接访问层,用于游戏编程)。

  相应的c开源库有ffmpeg、mpeg4、aac、avc、libmad、mpeg1、flac、ac3、ac3、matroska著名的多媒体播放器 TCPMP 天下闻名的跨平台、嵌入式手持设备视频播放器。

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号