网络工程师
北京 天津 上海 重庆 广东 浙江 山东 江西 江苏 安徽 湖南 湖北 河南 河北 广西 福建 四川 山西 陕西 贵州 辽宁 吉林 黑龙江 宁夏 云南 新疆 青海 甘肃 内蒙古 海南 西藏

C++开源库先容

更新时间:2015-12-31 浏览次数:0

新葡萄京娱乐场网址网络工程师备考辅导小编,整理出‘C++开源库先容’等信息,希翼能为广大考生提供帮助。及时了解相关考试信息,查询考试资讯,了解招考讯息,关注新葡萄京娱乐场网址,国内最快最全的考试信息综合平台,为您提供最全最新的考试查询新体验。

C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被严重地增强了。主力原因就是开源的App、基础App(比如并发原生支撑,比如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 天下闻名的跨平台、嵌入式手持设备视频播放器。

五、网络开发类

1、gSOAP SOAP协议的C++支撑库及代码生成工具。

2、ACE 网络编程研究首选。

ACE适合于研究,大型网络编程上效率不足,大型网游里面几乎没有用到ACE的,很多用了ACE的项目也被证明了效率不高。

除了ACE之外,还有很多系统和网络编程方面的程序库。比如在线程库方面,还有ZThread、boost::thread,如果放大到C/C++领域, 还有APR,还有CII.在文件和目录操作方面,boost也有相应的组件,而在网络编程方面有socket++,还有boost::asio,未来的 C++0X中几乎肯定有一个网络编程和一个线程库。然而目前看来,ACE仍然是进行系统和高性能网络编程的首选,其地位在一段时间内不会被撼动。它不但是 一个实用的程序库、框架集,还是一个典范的设计模式应用范例,非常值得学习。

3、根据博友回复,我整理如下:

开源C++库,称为POCO(POrtable COmponents – 可移植元件),非常方便好用。

共1条 1
XML 地图 | Sitemap 地图