C++标准库介绍.pdf
标准c库大全:C++标准库介绍 疯狂代码 http://CrazyCoder.cn/ ĵ:http:/CrazyCoder.cn/VC/Article12860.html 标准库中提供了C基本设施虽然C标准库随着C标准折腾了许多年直到标准出台才正式定型但是在标准库实 现上却很令人欣慰得看到多种实现并且已被实战证明为有工业级别强度佳作 1、Dinkumware C Library 参考站点:http://www.dinkumware.com/ P.J. Plauger编写高品质标准库P.J. Plauger博士是Dr. Dobb\'s设计杰出奖获得者其编写库长期被Microsoft采 用并且最近Borland也取得了其OEMlicense在其C/C产品中采用Dinkumware库 2、RogueWave Standard C Library 参考站点:http://www.roguewave.com/ 这个库在Borland C Builder早期版本中曾经被采用后来被其他库给替换了笔者不推荐使用 3、SGI STL 参考站点:http://www.roguewave.com/ SGI公司C标准模版库 4、STLport 参考站点:http://www.stlport.org/ SGI STL库跨平台可移植版本 C各大有名库介绍——准标准库Boost Boost库是个经过千锤百炼、可移植、提供源代码C库作为标准库后备是C标准化进程发动机的 Boost库由 C标准委员会库工作组成员发起在C社区中影响甚大其成员已近2000人 Boost库为我们带来了最新、最酷、最 实用技术是不折不扣“准”标准库 Boost中比较有名气有这么几个库: Regex 正则表达式库 Spirit LL parser framework用C代码直接表达EBNF Graph 图组件和算法 Lambda 在地方定义短小匿名对象很实用functional功能 concept check 检查泛型编程中concept Mpl 用模板实现元编程框架 Thread 可移植C多线程库 Python 把C类和映射到Python的中 Pool 内存池管理 smart_ptr 5个智能指针学习智能指针必读份不错参考是来自CUJ文章: Smart Poers in Boost,哦这篇文章可以查到CUJ是提供在线浏览中文版见笔者在Dr.Dobb\'s Journal软件 Software研发杂志第7辑上译文 Boost总体来说是实用价值很高质量很高库并且由于其对跨平台强调对标准C强调是编写平台无关现代C开 发者必备工具但是Boost中也有很多是实验性质东西在实际开发中实用需要谨慎并且很多Boost中库功能堪称对 语言功能扩展其构造用尽精巧手法不要贸然花费时间研读Boost另外面比如Graph这样库则是具有工业强度结构 良好非常值得研读精品代码并且也可以放心在产品代码中多多利用 参考站点:http://www.boost.org C各大有名库介绍——GUI 在众多C库中GUI部分库算是比较繁荣也比较引人注目在实际开发中GUI库选择也是非常重要件事情下面我 们综述下可选择GUI库各自特点以及相关工具支持 1、MFC 大名鼎鼎微软基础类库(Microsoft Foundation Class)大凡学过VC人都应该知道这个库虽然从技术角度讲 MFC是不大漂亮但是它构建于Windows API 的上能够使员工作更容易,编程效率高减少了大量在建立 Windows 时必须编写代码同时它还提供了所有般 C 编程优点例如继承和封装MFC 编写在各个版本 Windows操作系统上是可移植例如在Windows 3.1下编写代码可以很容易地移植到 Windows NT 或 Windows 95 上但是在最近发展以及官方支持上日渐势微[Page] 2、QT 参考网站WebSite:http://www.trolltech.com Qt是Trolltech公司个多平台C图形用户界面应用框架它提供给应用开发者建立艺术级图形用户界面所需所 用功能Qt是完全面向对象很容易扩展并且允许真正地组件编程自从1996年早些时候Qt进入商业领域它已经成 为全世界范围内数千种成功应用基础Qt也是流行Linux桌面环境KDE 基础同时它还支持Windows、Macosh、 Unix/X11等多种平台 3、WxWindows 参考网站WebSite:http://www.wxwindows.org 跨平台GUI库其类层次极像MFC所以有文章介绍从MFC到WxWindows代码移植以实现跨平台功能通过多 年开发也是个日趋完善GUI库支持同样不弱于前面两个库并且是完全开放源代码新近C Builder XGUI设计器就 是基于这个库 4、Fox 参考网站WebSite:http://www.fox-toolkit.org/ 开放源代码GUI库作者从自己亲身开发经验中得出了个理想GUI库应该是什么样子感受出发从而开始了对 这个库开发有兴趣可以尝试下 5、WTL 基于ATL个库使用了大量ATL轻量级手法模板等技术在代码尺寸以及速度优化方面做得非常到位主要面向 使用群体是开发COM轻量级供网络下载可视化Control控件开发者 6、GTK 参考网站WebSite:http://gtkmm.sourceforge.net/ GTK是个大名鼎鼎C开源GUI库在Linux世界中有Gnome这样杀手应用而Qt就是这个库C封装版本 C各大有名库介绍——网络通信 1、ACE 参考网站WebSite:http://www.cs.wustl.edu/~schmidt/ACE.html C库代表超重量级网络通信开发框架ACE自适配通信环境(Adaptive Communication Environment)是可 以自由使用、开放源代码面向对象框架在其中实现了许多用于并发通信软件Software核心模式ACE提供了组丰 富可复用C包装外观(Wrapper Facade)和框架组件可跨越多种平台完成通用通信软件Software任务其中包括:事 件多路分离和事件处理器分派、信号处理、服务化、进程间通信、共享内存管理、消息路由、分布式服务动态 (重)配置、并发执行和同步等等 2、StreamModule 参考网站WebSite:http://www.omnarious.org/StrMod 设计用于简化编写分布式库尝试着使得编写处理异步行为更容易而不是用同步外壳包起异步本质 3、SimpleSocket 参考网站WebSite:http://home.hetnet.nl/~lcbokkers/simsock.htm 这个类库让编写基于客户/服务器更加容易 4、A Stream Socket API for C 参考网站WebSite:http://www.pcs.cnu.edu/~dgame/s/sC/s.html 又个对Socket封装库 C各大有名库介绍——XML 1、Xerces 参考网站WebSite:http://xml.apache.org/xerces-c/ Xerces-C 是个非常健壮XML解析器它提供了验证以及SAX和DOM APIXML验证在文档类型定义 (Document Type DefinitionDTD)方面有很好支持并且在2001年12月增加了支持W3C XMLSchema 基本完整 开放标准 2、XMLBooster[Page] 参考网站WebSite:http://www.xmlbooster.com/ 这个库通过产生特制parser办法极大提高了XML解析速度并且能够产生相应GUI来修改这个parser在 DOM和SAX两大主流XML解析办法的外提供了另外个可行解决方案 3、Pull Parser 参考网站WebSite:http://www.extreme.indiana.edu/xgws/xsoap/xpp 这个库采用pull思路方法parser在每个SAXparser底层都有个pullparser这个xpp把这层暴露出来直接给大 家使用在要充分考虑速度时候值得尝试 4、Xalan 参考网站WebSite:http://xml.apache.org/xalan-c/ Xalan是个用于把XML文档转换为HTML纯文本或者其他XML类型文档XSLT处理器 5、CMarkup 参考网站WebSite:http://www.firstobject.com/xml.htm 这是种使用EDOMXML解析器在很多思路上面非常灵活实用值得大家在DOM和SAX的外寻求点灵感 6、libxml http://libxmlplusplus.sourceforge.net/ libxml是对著名libxml XML解析器C封装版本 C各大有名库介绍——科学计算 1、Blitz 参考网站WebSite:http://www.oonumerics.org/blitz Blitz 是个高效率数值计算库它设计目是希望建立套既具像C 样方便同时又比Fortran速度更快数值计算环 境通常用C所写出数值比 Fortran慢20%左右因此Blitz正是要改掉这个缺点思路方法是利用Ctemplate技术执行 甚至可以比Fortran更快 Blitz目前仍在发展中对于常见SVDFFTsQMRES等常见线性代数思路方法并不提供不过使用者可以很容易 地利用Blitz所提供来构建 2、POOMA 参考网站WebSite:http://www.codesourcery.com/pooma/pooma POOMA是个免费高性能C库用于处理并行式科学计算POOMA面向对象设计方便了快速开发对并行机器 进行了优化以达到最高效率方便在工业和研究环境中使用 3、MTL 参考网站WebSite:http://www.osl.iu.edu/research/mtl Matrix Template Library(MTL)是个高性能泛型组件库提供了各种格式矩阵大量线性代数方面功能在某些 应用使用高性能编译器情况下比如Intel编译器从产生汇编代码可以看出其和手写几乎没有两样效能 4、CGAL 参考网站WebSite:www.cgal.org Computational Geometry Algorithms Library目是把在计算几何方面大部分重要解决方案和思路方法以 C库形式提供给工业和学术界用户 2009-2-12 3:54:40 疯狂代码 http://CrazyCoder.cn/ C++标准库是C++编程语言的核心部分,提供了一系列的组件和函数,用于完成不同的任务,比如输入输出、字符串处理、容器操作、算法实现、数学计算等。标准库的设计目的是为了提高开发效率,减少开发者在常见任务上的重复劳动。C++标准库并非一蹴而就,它的发展历程非常曲折,但最终在C++标准正式确定后,各种库的实现趋于稳定,并且经过了实际应用的验证,显示出了工业级别的强度。 Dinkumware C Library是由P.J. Plauger博士编写的高品质标准库。他是一位杰出的软件工程师和程序员,获得了Dr. Dobb's设计杰出奖。他的库长期被Microsoft采用,并且最近Borland也获得了其OEM许可,将其库用于自己的C/C++产品中。 RogueWave Standard C Library是另一个曾经被采用的库,但随后被其他库所替代,目前不再推荐使用。 SGI STL是由SGI公司提供的C++标准模板库,它提供了一系列高效的数据结构和算法。STLport是SGI STL的跨平台可移植版本,允许开发者在不同的操作系统上使用相同的代码。 Boost库是一个经过千锤百炼的可移植、提供源代码的C++库,被看作是标准库的后备力量。它由C++标准委员会库工作组成员发起,拥有强大的社区影响力,成员数量已接近2000人。Boost库提供了大量实用技术,其中一些已经成为了准标准,例如正则表达式库Regex、LL解析框架Spirit、图组件和算法Graph、函数式编程框架Lambda、泛型编程概念检查concept check、模板元编程框架Mpl以及可移植的C++多线程库Thread等。Boost还提供了一个将C++类和对象映射到Python中的库以及内存池管理Pool和智能指针smart_ptr。不过,Boost中也包含了很多实验性的内容,因此在实际开发中需要谨慎对待,尤其是在使用一些库如Graph等能够提供工业级别强度的稳定组件时,开发者可以放心地在产品代码中采用。 在GUI库方面,微软基础类库(MFC)曾是Windows开发中的热门选择,构建于Windows API之上,便于开发者编写Windows应用程序。然而,随着时间的推移,MFC的支持和关注逐渐减少。QT是一个跨平台的GUI库,提供了面向对象的框架,广泛应用于建立图形用户界面。WxWindows也是一个跨平台GUI库,其类层次结构类似于MFC,支持代码移植。Fox和WTL是其他几个开源的GUI库,它们都为开发者提供了丰富的功能和灵活的编程方式。 在C++网络通信库方面,ACE是一个重量级的通信框架,提供了丰富的网络通信功能,支持多种平台。StreamModule简化了分布式库的编写,使得异步行为的处理更加容易。SimpleSocket和A Stream Socket API for C为基于C的Socket编程提供了封装。 对于XML处理,Xerces-C是一个健壮的XML解析器,支持验证以及SAX和DOM API。XMLBooster、Pull Parser、Xalan、CMarkup和libxml等库提供了不同的XML解析技术,方便开发者根据需求选择合适的工具。 在科学计算方面,Blitz是一个高效率的数值计算库,利用C++模板技术提供比Fortran更快的数值计算环境。POOMA是一个免费的高性能库,用于处理并行科学计算,优化了并行机器的性能。MTL提供高性能泛型组件库,用于线性代数计算。CGAL为计算几何领域提供了大量的解决方案和方法。 以上内容为C++标准库和相关知名库的介绍,涵盖从基础库到专业领域的广泛知识,每个库都针对特定的问题领域提供了丰富的功能和工具,有助于开发者在不同场景下快速构建高质量的应用程序。在选择使用这些库时,开发者应该根据项目的需求和库的成熟度进行合理判断,以确保程序的性能和稳定性。
剩余6页未读,继续阅读
- yanbingwei862013-12-25还凑合吧,讲的内容有点少
- alanleizi2016-07-05介绍的比较详细了,学习了,谢谢!
- 粉丝: 373
- 资源: 49
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助