C++有哪些库,C++常用库
基础类
1、丁库姆软件C库
地点:http://www.dinkumware.com
由P.J. Plauger编写的高质量标准库。P.J. Plauger博士是Dobb博士的程序设计卓越奖的获得者。其编译的库被微软采用已久,最近Borland获得了其OEM授权,其C/C产品中采用了Dinkumware库。
2、RogueWave标准C库
地点:http://www.roguewave.com
这个库用于早期版本的Borland C Builder,后来被其他库取代。不推荐。
3、SGI STL
地点:http://www.roguewave.com
SGI的C标准模板库。
4、STLport
地点:http://www.stlport.org
SGSTL库的跨平台便携版。
5、准标准库助推
参考地点:http://www.boost.org(国内图片:http://www.c-view.org/tech/lib/boost/index.htm)
Boost库是经过锤炼的C库,可移植,提供源代码。作为标准库的备份,是C标准化进程的引擎之一。Boost库由C标准委员会库工作组成员发起,在C社区有很大的影响力,成员近2000人。Boost库为我们带来了最新、最酷、最实用的技术,是一个‘准’标准库。
Boost中有几个著名的库:
正则表达式库
Spirit:LL解析器框架,直接用C代码表达EBNF
图形:图形组件和算法
Lambda:在被调用的地方定义一个简短匿名的函数对象,这是一个非常实用的函数。
概念检查:检查泛型编程中的概念
MPL:用模板实现的元编程框架
线程:一个可移植的C多线程库
Python:将C类和函数映射到Python
池:内存池管理
智能指针。智能指针必读,一个很好的参考是CUJ的文章:Boost中的智能指针。
总的来说,Boost是一个实用价值高、质量好的库。并且由于其强调跨平台和标准C,是编写平台无关和现代C的开发人员的必备工具,但Boost中也有很多实验性的东西,在实际开发中需要谨慎。而且Boost中的很多库函数都可以称之为语言函数的扩展,其结构构造精巧,不要贸然花时间学习。另一方面,像Graph这样的库是很优秀的代码,有工业实力,有Boost结构,值得研究,可以放心用在产品代码中。
图像使用者界面
在众多的C库中,GUI库是比较繁荣和吸引人的。在实际开发中,GUI库的选择也是一件非常重要的事情。这里我们总结了可选的GUI库,它们各自的特点以及相关工具的支持。
1、MFC
著名的微软基础类库。学过VC的人应该都知道这个库。MFC虽然从技术角度看并不美观,但是它是建立在Windows API之上的,可以让程序员的工作更加轻松,编程效率高,减少了大量构建Windows程序时必须编写的代码。同时,它还提供了一般C编程的所有优点,比如继承和封装。MFC编写的程序可以移植到各种版本的Windows操作系统上。例如,在Windows 3.1下编写的代码可以很容易地移植到Windows NT或Windows 95上。但是最近的发展和官方的支持越来越弱。
2、Qt
参考网站:http://www.trolltech.com
Qt Trolltech是一个多平台C图形用户界面应用框架。它为应用程序开发人员提供了构建艺术图形用户界面所需的所有功能。Qt是完全面向对象的简单扩展,允许真正的组件编程。从1996年初开始,Qt进入了商业领域,它已经成为全球成千上万成功应用的基础。Qt也是流行的Linux桌面环境KDE的基础,它还支持Windows、Macintosh、Unix/X11等平台。
3、WxWindows
参考网站:http://www.wxwindows.org
跨平台GUI库。因为它的类级别和MFC很像,所以有一篇文章讲的是从MFC到WxWindows的代码移植,实现跨平台的功能。通过多年的发展,它也是一个日益完善的GUI库,支持力度丝毫不弱于前两个库。而且是完全开源的。C Builder X最近的GUI设计器就是基于这个库。
福克斯
参考网站:http://www.fox-toolkit.org
开源GUI库。
5、WTL
基于ATL的库。由于使用了大量的ATL轻量级技术、模板等技术,代码大小和速度优化做得非常好。主要用户是开发COM轻量级可视化控件以便从Internet下载的开发人员。
6、GTK
参考网站:http://gtkmm.sourceforge.net/
GTK是一个著名的C开源GUI库。Linux世界里有Gnome这样的杀手级应用。GTK是这个库的C包版本。
在线交流
1、王牌
参考网站:http://www.cs.wustl.edu/~schmidt/ACE.html
c库,一个超重量级的网络通信开发框架。ACE(Adaptive Communication Environment)是一个可以免费使用的开源面向对象框架,其中实现了许多并发通信软件的核心模式。ACE提供了一组丰富的可重用C Wrapper Facade和框架组件,可以跨多个平台完成常见的通信软件任务,包括:事件解复用和事件处理程序调度、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务的动态(重新)配置、并发执行和同步等等。
2、流模块
参考网站:http://www.omnifarious.org/StrMod/
设计一个库来简化分布式程序的编写。尽量让编写处理异步行为的程序更容易,而不是用同步外壳包装异步的本质。
3、简单插座
参考网站:http://home.hetnet.nl/~lcbokkers/simsock.htm
这个类库使得编写基于套接字的客户机/服务器程序变得更加容易。
4、一个面向C语言的流套接字API
参考网站:http://www.pcs.cnu.edu/~dgame/sockets/socketsC/sockets.html
Socket的另一个包库。
可扩展置标语言
1、薛西斯
参考网站:http://xml.apache.org/xerces-c/
Xerces- C是一个非常健壮的XML解析器,它提供了验证、SAX和DOM API。XML对文档类型定义(DTD)有很好的支持,2001年12月,增加了一个基本完整的支持W3C XML Schema的开放标准。
2、XMLBooster
参考网站:http://www.xmlbooster.com/
这个库通过生成一个专门的解析器,大大提高了XML解析的速度,并且可以生成相应的GUI程序来修改这个解析器。除了DOM和SAX这两种主要的XML解析方法之外,它提供了另一种可行的解决方案。
3、拉解析器
参考网站:http://www.extreme.indiana.edu/xgws/xsoap/xpp/
这个库是一个使用pull方法的解析器。在每个SAX解析器的底层,都有一个pull解析器,这个xpp把这一层公开出来,让大家直接使用。在要充分考虑速度的时候值得一试。
4、Xalan
参考网站:http://xml.apache.org/xalan-c/
Xalan是一个XSLT处理器,用于将XML文档转换为HTML、纯文本或其他XML文档。
5、CMarkup
网站:http://www.firstobject.com/xml.htm,http://www.firstobject.com/xml.htm
这是一个使用EDOM的XML解析器。很多想法非常灵活实用。值得在DOM和SAX之外寻求一点灵感。
6、libxml
http://libxmlplusplus.sourceforge.net/
Libxml是著名的libxml XML解析器的C包版本。
科学计算
1、闪电战
参考网站:http://www.oonumerics.org/blitz/
Blitz是一个高效的数值计算函数库,它的设计目的是构建一个和C一样方便,比Fortran更快的数值计算环境。一般用C写的数值程序比Fortran慢20%左右,所以Blitz在努力改掉这个缺点。该方法使用了C的模板技术,程序执行甚至可以比Fortran更快。Blitz目前还在发展中,但没有为SVD、FFT、QMRES等常见的线性代数方法提供。但是,用户可以很容易地使用Blitz提供的函数来构造它们。
2、POOMA
参考网站:http://www.codesourcery.com/pooma/pooma
POOMA是一个免费的高性能C库,用于处理并行科学计算。POOMA面向对象的设计有利于快速程序开发,优化并行机以实现最高效率,便于在工业和研究环境中使用。
3、MTL
参考网站:http://www.osl.iu.edu/research/mtl/
矩阵模板库(MTL)是一个高性能的通用组件库,提供了大量各种格式矩阵的线性代数函数。当一些应用使用高性能编译器时,如Intel编译器,从生成的汇编代码中可以看出,其性能与手写几乎相同。
4、CGAL
参考网站:www.cgal.org
计算几何算法库的目的是以C库的形式向工业界和学术界的用户提供计算几何中最重要的解决方案和方法。
游戏开发
1、AV3D(音频/视频3D C编程库)
参考网站:http://www.galacticasoftware.com/products/av/
AV3D是一个跨平台、高性能的C库。它的主要特点是3D图形,声音支持(SB,S3M),控制界面(键盘,鼠标和遥感)和XMS。
2、克莱格
参考网站:http://home.g365.net/enginedev/
国内游戏开发者自己用C. KlayGE开发的游戏引擎,是一个开源的、跨平台的游戏引擎,使用Python作为脚本语言。克莱格是根据LGPL协议发行的。我要感谢龚先生对中国游戏发展的贡献。
食人魔
参考网站:http://www.ogre3d.org
OGRE(面向对象的图形渲染引擎)是用C开发的,使用灵活的面向对象的3D引擎。其目的是让开发者能够更方便、更直接地开发基于3D硬件设备的应用或游戏。引擎中的类库抽象了底层系统库(如Direct3D、OpenGL)的所有使用细节,提供了基于现实世界对象的接口等类。
线
1、C螺纹
参考网站:http://threads.sourceforge.net/
这个库的目标是为程序员提供易于使用的类,这些类被继承以提供大量在Linux环境下很难看到的线程功能。
2、ZThreads
参考网站:http://zthread.sourceforge.net/
一个高级的面向对象的,跨平台的C线程和同步库。
连载
1、s11n
参考网站:http://s11n.net/
基于STL的C库用于序列化POD、STL容器和用户定义的类型。
2、简单的XML持久性库
参考网站:http://sxp.sourceforge.net/
这是一个轻量级的C库,将对象序列化为XML。
字符串处理
1、C Str库
参考网站:http://www.utilitycode.com/str/
支持Windows和gcc的字符串和字符库。提供高度优化的代码,并支持多线程环境和Unicode,以及正则表达式支持。
2、通用文本转换库
参考网站:http://cttl.sourceforge.net/
这是一个用于解析和修改STL字符串的库。CTSubstring类可用于比较、插入、替换和解析EBNF语法。
3、格里塔
参考网站:http://research.microsoft.com/projects/greta/
这是一个由微软研究院的研究人员开发的用于处理正则表达式的库。在小搭配的情况下表现出色。
全面的
1、P:类
参考网站:http://pclasses.com/
一个高度可移植的C应用程序框架。目前,侧重于类型和线程安全的信号/插槽机制,i/o系统包括基于插件的具有透明网络协议的i/o架构,基于插件的应用程序消息日志框架,用于访问sql数据库的类等等。
2、ACDK(Artefaktur组件开发套件)
参考网站:http://acdk.sourceforge.net/
这是一个与平台无关的C组件框架,类似于Java或。NET(反射机制、线程、Unicode、垃圾回收、I/O、网络、实用程序、XML等。),以及Java、Perl、Python、TCL、Lisp、COM、CORBA的集成。
3、dlib C库
参考网站:http://www.cis.ohio-state.edu/~kingd/dlib/
各种类的综合。大整数、套接字、线程、GUI、容器类、浏览目录的API等。
4、Chilkat C库
参考网站:http://http://www.chilkatsoft.com/cpp_libraries.asp
这是一个提供zip、电子邮件、编码、S/MIME、XML等的库。
5、C可移植类型库(PTypes)
网站:http://www.melikyan.com/ptypes/,http://www.melikyan.com/ptypes/
这是一个相对简单的STL的替代品,以及可移植的多线程和网络库。
6、LFC
参考网站:http://lfc.sourceforge.net/
哦,这是另一个试图提供一切的C库。
其他图书馆
洛基
参考网站:http://www.moderncppdesign.com/
哦,你可能会抱怨我应该用Boost这个实验库来介绍它。作者在loki中将C模板的功能发挥到了极致。并尝试通过图书馆提供设计模式这类思想性的东西。同时还提供了智能指针等实用功能。
2、ATL
ATL(Active Template Library)是一组小型、高效且灵活的类,为创建可互操作的COM组件提供了基本的工具。
3、FC:函数式C库
这个库提供了一些只有函数式语言才有的元素。属于利用库扩展语言的代表作。如果你想在OOP之外寻找另一个乐趣点,可以看看函数式编程的世界。大师Peter Norvig在《十年自学编程》一文中,将函数式语言列为至少六种应该学习的编程语言类型之一。
4、事实!
参考网站:http://www.kfa-juelich.de/zam/FACT/start/index.html
实现函数式语言特性的另一个库。
5、加密
提供了一个免费的库,用于密码处理、消息认证、单向哈希、公钥加密系统等功能。
6、ZLib的托管C包装器
压缩组件Zlib的c类库。
7、CppSQLite(SQLite的C包装器)
SQLite C包库。
8、CxImage
图像格式转换。
9、log4cplus
参考网站:http://log4cplus.sourceforge.net
Log4cplus是用C写的开源日志系统,它的前身是用java写的log4j系统。受Apache软件许可证保护。作者是泰德e史密斯。Log4cplus具有线程安全、灵活、多粒度控制的特点。通过对信息进行优先级排序,可以面向程序调试、运行、测试、维护的全生命周期。您可以选择将信息输出到屏幕、文件、NT事件日志,甚至远程服务器;通过指定策略等定期备份日志。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。