c++ 有哪些数据库设计的重要性的 可以复用的库

1205人阅读
转自:http://bbs.chinaunix.net/thread--1.html
&& 这里收集一些著名的&C/C++&开发库、SDK、类库、可复用类与结构代码&等信息,列举它们的介绍、参考和网站链接,为各位&C/C++&程序员和爱好者提供检索和查阅类库的方便。&& 下面收集的&C/C++&类库介绍整理来源于文章:(作者:曾毅、陶文),这篇文章曾发表于&2004&年&5&月《CSDN&开发高手》。&&上文中介绍的类库有些已经多年未见发布和网站内容的更新了,特别是一些开源的项目。我检查了作者提供的&链接地址&和项目的&活跃程度,更改内容上的偏差并补全了重要说明。另外,增加了自己使用和了解的&C/C++&类库的介绍。更新说明列表&(Last&Update:&2011-02)目录
·&C/C++&标准库与运行时库&|&C/C++&Standard&&&Runtime&Library
模式复用与基础功能&|&Pattern&Reuse&&&Basic&Function
·&字符串处理&|&String&Handling
·&应用框架与图形用户界面&|&Application&Framework&&&GUI
·&通用功能&|&General&Function
·&线程&|&Threads
·&科学与并行计算&|&Scientific&&&Parallel&Computation
·&网络功能&|&Network&Communication
·&XML&功能&|&XML&Functions
·&持久存储&|&Persistence&&&Storage
·&加解密&|&Cryptographic
·&日志&|&Logging
·&函数式编程&|&Functional&Programming
·&杂项&|&MISC
·&-------------------------------------------&C/C++&标准库与运行时库&|&C/C++&Standard&&&Runtime&Library
实现&ISO&的&C/C++&语言规格标准中要求的标准库,每个组织或厂家的实现均有差异。在链接的二进制库中通常还伴随实现了平台特定的基础运行时库,例如&POSIX&标准。ISO&C/C++/POSIX&的标准如下:
C++2003:&
C++0x:&:第&3&版的&C++&语言标准。关注发布页上的&Status&是否还是&Under&development。
POSIX&Interface:&
Microsoft&C&Run-Time&Libraries&&&Standard&C++&Library
MSDN&:讨论&Microsoft&CRT、Standard&C++&Library&对应的&lib&和&dll&文件。
MSDN&:微软的标准&C++&库参考,包括&STL&子集的参考。
MSDN&:从&VC9&开始,微软的&STL&分为两种实现,一种是传统的&C++&本地代码实现,另一种是托管&C++&的&CLR&实现,称为&STL/CLR&库。这里是&STL/CLR&库的参考。
,&by&Alex&Blekhman:讲述&Windows&API、Microsoft&CRT、Standard&C++&Library&之间的关系,以及运行库的&Unicode、字符集编码问题,静态与动态链接问题。
微软的这一套运行时库,在功能和链接库上分为&3&个部分:Run-Time&Libraries&(CRT)、Standard&C++&Library、CRT&for&Managed&Code,分别对应的动态链接库为:msvcr[ver].dll、msvcp[ver].dll、msvcm[ver].dll。VC8、VC9&采用了&&(WinSxS,&Manifest)&方式部署&CRT&库,但在&VC10&中又去掉了&Side-by-Side&的部署方式。在&%SystemRoot%\system32&中有一个随&Windows&发布的&Known&DLL:msvcrt.dll;而带版本号&[ver]&的库在&VC&或&VC&Redistributable&Package&中发布。VC7&之后在&namespace&stdext&中提供&hash_map、hash_set&两个扩展标准的容器模板。GNU&C/C++&Library
:libstdc++&在&GCC&Collection&中发布。
通常称为&GNU&libc&和&libstdc++,是&GNU&的&C/C++&标准库和运行时库的实现,在各种&Linux&发行版中都会安装该库,也是很多开源&C/C++&程序选择的基础库。另外&libc&和&libstdc++&也被移植到各种平台下,如&Windows&下的&MinGW&和&Cygwin&就包含&libc&和&libstdc++:MinGW
MinGW:&Minimalist&GNU&for&Windows,在&Windows&平台提供一套&GNU&的开发环境,包括工具和开发库。MinGW&中包括对&GCC&和&GNU&libc、libstdc++&的&Windows&移植。Cygwin
发源于&RedHat&的&Cygwin&项目,目标在于在&Windows&下建立一套&Unix/Linux&环境,包括&X&Window&这种&Linux&GUI&基础库在内,所以又叫&Cygwin/X。Cygwin&实现的重点是&cygwin1.dll,它向其它&Cygwin&程序提供&POSIX&接口,并在内部转换成&Windows&API&调用。Cygwin&中包括对&GCC&和&GNU&libc、libstdc++&的&Windows&移植。Tiny&C&Runtime&Library
一个小巧的&Windows&平台&CRT&库实现,可用来替换对&Microsoft&CRT&库的链接,达到精简依赖的基础库、减小最终发布程序大小的作用。SGI&STL
SGI&公司的&C++&标准模版库。STLport
SGI&STL&库的跨平台可移植版本。Dinkumware&C++&Library
P.J.&Plauger&编写的高品质的标准库。P.J.&Plauger&博士是&Dr.&Dobb's&程序设计杰出奖的获得者。其编写的库长期被&Microsoft&采用,并且&Borland&也取得了其&OEM&的&license,在其&C/C++&的产品中采用&Dinkumware&的库。RogueWave&Standard&C++&Library
这个库在&Borland&C++&Builder&的早期版本中曾经被采用,后来被其它的库给替换了。不推荐使用。模式复用与基础功能&|&Pattern&Reuse&&&Basic&Function
其实这个分类的界限很难确定,原因是有一些&C/C++&库提供各种各样的模式形式,在功能上也包罗万象,并不专一,属于综合性功能。但在目标上这些库都是一致的:加强&C/C++&语言的功能、复用度,提供稳定的基础功能。什么是基础功能?应该是那些不依赖于平台,每个应用可能都会用到的功能,例如:字符串、通用算法和容器等。Boost
:最新发布版&(Current&Release)&的&Boost&官方在线文档。
:Boost&中所有库的&分类索引、概述&和&列表。
·&Boost&是高质量、可移植、开放源代码的&C++&库,作为标准库的后备,是&C++&标准化进程之一。Boost&库由&C++&标准委员会库工作组成员发起,在&C++&社区中影响甚大。Boost&库为我们带来了最新、最酷、最实用的技术,是不折不扣的准标准库。Boost&不是一个库,而是一组库,每一个&Boost&库都是一个相对独立的功能(通常在一个子目录下发布),可以独立链接和使用,一般称&Boost&中的&xxx&库为&Boost.xxx。有些&Boost&库根本不用编译成二进制的静态或动态链接库形式,只要在应用它的源码中&include&包含它的头文件就可以直接使用,称为&Header-Only&库,如&Boost.Lambda。Boost&由于其对跨平台的强调,对标准&C++&的强调,是编写平台无关,现代&C++&的开发者必备的工具。但是&Boost&中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。并且很多&Boost&中的库功能堪称对语言功能的扩展,其构造用尽精巧的手法,不要贸然的花费时间研读。Boost&另外一面,比如&Graph&这样的库则是具有工业强度,结构良好,非常值得研读的精品代码,并且也可以放心的在产品代码中多多利用。另外,Boost&的官方文档也是相当漂亮的,讲述的清晰明了:从&概念&到&示例都有,在开源库中是不可多得的。除了&Boost&发布包中包括的库之外,还有一些库处于提交待审成为&Boost&库的状态&(Proposal),或处于尚在测试和评审阶段&(TR),Boost&发布包中未将这些库包含进来,可以从这些库的专项地址下载,例如用于日志的&&库。列举&Boost&中的几个库:
:正则表达式库
:LL&Parser&Framework,用&C++&代码直接表达&EBNF
:图组件和算法
:在调用的地方定义短小匿名的函数对象,提供函数式编程&(Functional&Programming)&特性
:这不是一个复用库,而是为了检查&C++&泛型编程中的&concept
:用模板实现的元编程框架
:可移植的&C++&多线程库
:把&C++&类和函数映射到&Python&之中
:内存池管理
:6&个智能指针,参考:
:作者&Andrei&Alexandrescu&及其著作&&Modern&C++&Design&&的网站。
Loki&的作者就是大名顶顶的&Andrei&Alexandrescu,&Modern&C++&Design&()一书的作者,Boost&和&&的推动者之一。Loki&早期是&&Modern&C++&Design&&一书的附带类库,是实验和教学性质的库。但随着作者的维护、更新和改进,Loki&现在已经在复用性和稳定性上已逐渐成熟了。Loki&中把&C++&模板的功能发挥到了极致。尝试把类似&设计模式&这样思想层面的东西通过库来提供。同时还提供了智能指针这样比较实用的功能。stlsoft
·&stlsoft&从名字都可以知道是&STL&的扩展功能库,这一点和&Boost&的定位很像。stlsoft&的作者是&Matthew&Wilson,stlsoft&也有配套的书籍&&Extended&STL&&共两卷:stlsoft&包含一些基本的通用功能,例如字符串处理&(stlsoft/string/),当然这是基于&std::basic_string&的处理。stlsoft&最吸引人的地方是:免费&和&全部的功能都是&Header-Only&的,使用时只要包含头文件即可。字符串处理&|&String&Handling
通用的字符串处理功能,可以划分到&
模式复用与基础功能&|&Pattern&Reuse&&&Basic&Function&类别中,但为了查阅方便,还是把它分离出来了。包括:字符串的类包裹对象、格式化字符串、Tokenizer、分词、正则表达式处理&等。当然&C/C++&的标准库,以及很多应用框架和&GUI&库中,也都有字符串处理相关的功能实现(如:strtok()、std::basic_string、std::basic_stringstream、&ATL/MFC&的&CStringT&等),这里就不再列出这些功能了,有需要可以参考&&和、&等一些&C/C++&参考网站。Boost&中的字符串处理相关库上面说了&Boost&是一套包罗万象的通用功能&C++&库,下面列出一些&Boost&中的和字符串处理相关的库:
:Boost&字符串算法库,功能大多在头文件&boost/algorithm/string.hpp&中集中声明,并在&boost/algorithm/string/&下有分别功能的定义,在名字空间&boost::algorithm&中。这个&Boost&字符串算法库通常和标准库的字符串实现&std::basic_string&联用,作为标准库字符串功能的扩展,例如可以做&tokenize&的算法&boost::algorithm::split()&或类&boost::algorithm::split_iterator,&boost::algorithm::token_finder。
:Boost&专门提供的字符串&tokenize&分词库,在&boost/tokenizer.hpp&中声明,和它相关的还有&分词迭代器&(boost\token_iterator.hpp)&和&分词工具类&(boost\token_functions.hpp)。
:上面已提到了,这是&Boost&的正则表达式功能实现。
另外&Boost&中还有&lexical_cast(数值/字符串转换)、Format(类似&printf()&的格式化)、Spirit(EBNF&解析)等和字符串/文本处理有关的库。Common&Text&Transformation&Library:,基于标准库&std::basic_string&的字符串处理扩展功能,有&EBNF&解析功能。GRETA:,微软&Research&的正则表达式模板库项目(已停止维护),支持&Perl&兼容的正则表达式处理。应用框架与图形用户界面&|&Application&Framework&&&GUI
通用的应用程序开发框架库,通常以&GUI&为其重要的组成部分,但绝不止于&GUI,功能上小到&字符串,中到&网络通信,大到&层次架构都有可能支持。并且应用框架库不只是库的复用,而可能会引导程序员的程序架构设计,例如&MVC&架构。一般情况下足以单独依靠&某一个应用框架库来完成程序的开发。通常可以永葆活力的应用框架库背后都是有实力的组织或公司,稳定性比一般的库要强。MFC
MFC&(Microsoft&Foundation&Class)&微软基础类库,构建于&Windows&API&之上,提供&OO&的接口风格。在&.Net&Framework&成名前,MFC&是&Windows&平台开发程序主框架的首选,现在由&.Net&Framework&接过这个任务。ATL/WTL
:含&WTL&8.0,&7.5,&7.1,&7.0&版本的下载地址。
ATL&(Active&Template&Library)&是一组轻量级、高效的模板类,提供&GP&的接口风格,这些类为创建&COM&组件提供了基本的功能。有一部分类和代码在&ATL&和&MFC&之间是共享的&(ATL/MFC&Shared&Classes),例如&实现&CString&的&CStringT&模板。WTL&是基于&ATL&的一个库。使用了大量&ATL&的轻量级手法、模板等技术,在代码尺寸,以及速度优化方面做得非常到位。主要应用目标是&COM&轻量级网络下载的可视化控件&(ActiveX)。不过微软的商业策略,包括&MFC&和风头上的&.Net&Framework,WTL&早就被微软冷落了,最近的官方版本是&2007&年发布的&WTL&8.0,不过在&Sourceforge&的&WTL&项目中,于&2009&年发布了&WTL&8.1。wxWidgets
由社区维护的开源跨平台&C++&通用程序框架和&GUI&类库。wxWidgets&原来也叫&wxWindows,但由于微软的缘故更名为&wxWidgets。wxWidgets&的层次结构类似&MFC,熟悉&MFC&的人可以很快上手&wxWidgets。wxWidgets&使用基于运行平台的&Native&API&实现,对于&Windows&来说就是&Windows&API,对于&Linux&则可能是&GTK+&或&X11。除了&C++&作为开发接口语言外,wxWidgets&最著名的其它语言封装接口是&Python&的封装接口:wxWidgets&项目的活跃程度和更新、维护一直都很稳定,是值得长久信赖的通用程序框架和&GUI&类库。GTK+/gtkmm
GTK+&(GIMP&Toolkit)&是一个采用面向对象设计的使用&C&语言开发的&GUI&窗口开发库。最早作为&GIMP&绘图工具的基础库而开发。GTK+&是&GNOME&桌面环境的基础库。gtkmm&是&GTK+&的&C++&语言封装。Qt
Qt&原来是&Trolltech&公司的一个跨平台的&C++&GUI&框架,后来被&Nokia&收购成为其一个子部门。Qt&是另一个著名桌面环境&KDE&的基础库。和&GTK+&不同,Qt&一开始就选择&C++&作为实现其完全面向对象框架的开发语言。
通用功能&|&General&Function
这些库是包含了多种功能的综合性开发库、类库,一般目标是提供可移植的基础设施服务,例如&线程、网络功能&等。P::Classes
活跃程度:2004-03&发布版本&1.0.0&beta1,2005-01&网站最近消息贴出&&We&are&not&dead!&&[2010-11&checked]一个高度可移植的&C++&应用程序框架。当前关注类型和线程安全的&Signal/Slot&机制,I/O&系统包括基于插件的网络协议透明的&I/O&架构,基于插件的应用程序消息日志框架,访问&SQL&数据库的类等。ACDK
活跃程度:2006-03&公告&CVS&版下载&ACDK&5&a2&[2010-11&checked]ACDK&(Artefaktur&Component&Development&Kit)&是一个平台无关的&C++&组件框架,目标是实现类似于&Java&或者&.NET&中的框架,涉及的方面有:反射机制、线程、Unicode、废料收集、正则表达式、I/O、网络、SSL、SQL、实用工具、XML&等。还包括对&Java、Perl、Python、TCL、Lisp、COM&和&CORBA&的集成。dlib&C++&library
活跃程度:2010-11&发布版本&17.32&[2010-11&checked]提供多种功能的跨平台综合库。涉及的方面有:数值计算&(Matrix)、网络功能&(Socket,&streambuf,&HTTP&server)、线程、GUI、机器学习、图像处理(BMP&位图)、数据压缩与摘要、日志、单元测试框架、命令行解析、XML&解析、容器、序列化、BASE64&编解码、内存池管理&等。Chilkat&C++&Libraries
活跃程度:2010-07&发布&VC6-VC10&编译版本&9.1.0&[2010-11&checked]提供一组库,包括:Zip、Mail、IMAP、加解密、MHT、XML、字符集、MIME、PFX、FTP&等。PTypes
活跃程度:2007-06&发布版本&2.1.1&[2010-11&checked]可以作为&STL&的简单替代品,提供可移植的线程(同步对象)和网络(Socket&和&命名管道)支持,也包括字符串、变体&(variant)、字符集、链表&等基础类型的实现。主要应用目标是的网络服务程序&和&robots&等。LFC
活跃程度:2002-06&发布版本&0.5&[2010-11&checked]一个提供通用目标的&C++&类库、框架,涉及的方面有:通用数据结构、通用算法、文件、Socket、线程、GUI、数据库访问、通用设计模式、数据流、RTTI、持久化、多媒体(包括游戏开发与&3D&图形)、通用网络协议&(HTTP,&FTP)、正则表达式&等。线程&|&Threads
:pthreads&规范。
:讲解&pthreads&的各个方面,包括:POSIX&线程详解、POSIX&线程编程、Linux&线程模型&(NPTL:&Native&POSIX&Threads&Library&for&Linux)。
:pthreads&的&Windows&移植版。
由&POSIX&定义的线程实现规范&POSIX&threads,C&语言的&API,在各种&Unix/Linux&和&Windows&下都有支持,是一套移植性很好的通用线程库。C++&Threads
活跃程度:2003-10&发布版本&3.6&[2010-11&checked]C++&封装的线程类,用于&Linux&开发的多线程支持。ZThreads
活跃程度:2005-03&发布版本&2.3.2&[2010-11&checked]一个跨平台,面向对象设计的线程和同步事务库。在&POSIX&和&Windows&下经过测试。科学与并行计算&|&Scientific&&&Parallel&Computation
这个一开始可以分为两类:关于&数值计算&(Numeric&Computation)&和&并行计算&的库,但是有相当一部分库同时涵盖这两种功能,并且现代的用于数学计算的程序越来越依靠并行处理来提升性能,所以就归到了一类。Blitz++
Blitz++&是一个高效的数值计算函数库,它的目的是建立一套具有&C++&方便接口,同时又比&Fortran&速度更快的数值计算环境。通常,用&C++&所写出的数值程序,比&Fortran&慢&20%&左右,因此&Blitz++&正是要改掉这个差距。方法是利用&C++&的&template&技术,程序执行甚至可以比&Fortran&更快。CGAL
CGAL&(Computational&Geometry&Algorithms&Library)&是高效几何计算方面的&C++&类库,CGAL&也有&&和&Matlab&的&API&接口。CGAL&应用的领域有:图形学、可视化、辅助设计与建模、GIS&等。POOMA
POOMA&(Parallel&Object-Oriented&Methods&and&Applications)&原先是由&Los&Alamos&National&Laboratory&(LANL)&开发的用于并行计算的&C++&类库。POOMA&提供近似于数学语法的高层语法,来简化算法的编程,并且自动处理多处理器之间的通信事务。POOMA&被用于物理模型的计算,例如:粒子物理计算。FreePOOMA&是&POOMA&的继续项目,原先的&POOMA&已经很少维护了。MTL
MTL&(Matrix&Template&Library)&提供&矩阵&和&线性代数&计算的功能,是一个基于模板泛型设计,以高性能计算&(HPC:&High-performance&computing)&为目标的类库。MTL&有&2&个版本:MTL4&和&MTL2,MTL4&是&2005&后重写的库。OpenMP
:OpenMP&官方,OpenMP&规范标准。
:VC&的&OpenMP&支持&和&使用参考。
OpenMP&不是一套复用目的的开发库,而是一组用于共享内存并行系统的多线程程序的一套指导规范,它由编译和运行环境支持,最新的&GCC、ICC、VC&都对&OpenMP&有所支持。OpenMP&规范支持的语言包括&C、C++&和&Fortran。开发时,在源码中使用编译指示&(directive,&#pragma)&指导编译器并行化,编译器自动将程序并行化,并在必要之处加入同步互斥语义。Intel&Compilers&and&Libraries
:包括&C++&和&Fortran&两种语言编译工具,VTune、等性能工具,MKL&等提升数学和并行计算的开发库。支持的平台有:Windows、Linux、Mac&OS
:Intel&的开发工具包有&Linux&平台下的免费下载版。
:使用&Intel&编译和开发工具的知识库,里面有很多关于数学和并行计算、性能优化的专家级文章,也有工具使用的指导教程,还有示例代码。
本来不想把&Intel&Compilers&and&Libraries&放到这一类的,因为这个软件包含了除&开发库&外的编译和其它工具,但是由于使用此软件包能够在&Intel&平台下开发和生成出色性能的程序,以及对并行计算的强力支持,还是把它列出来了。这个软件包以及从&ICC&编译器增大到包括&VTune、Amplifier、Inspector、MKL&(Math&Kernel&Library)&等各种性能工具和库的开发套件,是开发&Intel&平台高性能、并发程序的强力工具。网络功能&|&Network&Communication
很多通用库和应用框架库,如&Boost.Asio,都有网络通信功能、异步网络&I/O&功能&(AIO)&或&Socket&封装库,这里只列出以&网络通信功能&为主要目的的开发库。ACE
:从这里开始了解&ACE,同时也是&ACE&之父&Schmidt&的主页。
:Schmidt&是&Vanderbilt&大学的教授,ACE&的源码可以从&Vanderbilt&大学的&SVN&仓库中下载。
:ACE&的&Doxygen&参考文档。
ACE&(Adaptive&Communication&Environment)&中文翻译为&自适应通讯环境,由&Douglas&Schmidt&发起,后来有其它人员参与。ACE&是一套重量级的&C++&网络功能库,它的特点是使用很多面向对象的设计模式来实现网络功能,并且有很好的跨平台能力。ACE&的框架中实现了很多概念,诸如:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态配置、并发执行和同步&等。因为&ACE&的模式众多,所以使用者在清晰理解其概念的情况下,才会发挥&ACE&的效能。关于&ACE&的评价和学习步骤、资料,可以参考(陈硕)。A&Stream&Socket&API&for&C++:,Socket&封装。A&simple&IOCP&Server/Client&Class:,Windows&Socket&+&IOCP&完成端口机制封装。在&Windows&下稍加更改可以让这个变成符合自己需要的小巧而高效的网络处理类。配文讲解的中文翻译在&。XML&功能&|&XML&Functions
XML&是现代通用的数据保存格式,因为它的通用性和格式良好定义,被经常用在&数据存储、数据交换&和&接口说明&等功能中。先列举一些&XML&解析器&(XML&Parser):TinyXML:,一个轻量级的&XML&Parser.MSXML
:MSDN&上的&MSXML&开发资源合集,包括&MSXML&开发包下载、开发教学、文档参考、XML&工具等。
微软的&XML&Parser,全称&Microsoft&Core&XML&Services,采用&COM&的接口操作形式,提供&DOM&和&SAX2&API、XML&Schema&(XSD)、XPath、XSLT&功能。xml4c:,IBM&的重量级&XML&Parser,C++&实现,支持&100&多种字符编码。Xerces:,Apache&的&XML&Parser,支持少数的字符编码,如&ASCII、UTF-8、UTF-16&等,功能包括验证&DTD、SAX&和&DOM&API&等。libxml++:,对的&&(The&XML&C&parser&and&toolkit&of&Gnome)&解析器的&C++&封装。XMLBooster:,使用&DOM&和&SAX&两大主流&XML&解析办法之外的解析器。下面列举一些&XML&的功能库:Xalan:,Xalan&可以将&XML&文档转换为&HTML、纯文本或者其它&XML&类型文档。gSOAP:,SOAP/Web&Services&的一个&C++&开源实现。SOAP/Web&Services&in&ATL&Server
&in&MSDN&(VS:微软对&ATL&Server&库的支持降低了,在&MSDN&Library&中,最后一个有&ATL&Server&参考的版本是&VS8。因为现在微软主推的&.Net&框架中已包含&HTTP&和&SOAP&等&Web&功能(WCF&等)。
&in&CodePlex:ATL&Server&现在在&CodePlex&上托管和维护,可以在这里得到&ATL&Server&最新的消息。
这是微软的&SOAP/Web&Services&功能。原先微软有一个&SOAP&Toolkit&的库,实现&SOAP/Web&Services&功能,但后来被废弃了,并移入了&.Net&框架中。所以要使用本地代码&C/C++&实现的&SOAP,就要使用&ATL&Server&库中的&SOAP/Web&Services&功能。ATL&Server&库除了&SOAP&之外还提供其它&Web&功能,例如&HTTP&实现。eXist:,持续化&XML&存储,XML&数据库。Simple&XML&Persistence&Library&(SXP):,将对象序列化为&XML&的轻量级的&C++&库,用于持久存储。持久存储&|&Persistence&&&Storage
通常&持久存储&表示的概念包括:(1)&将类型(POD&类型、类对象、容器)序列化为二进制数据。(2)&提供基于文件/流的操作。(3)&提供基于数据库的操作。对于&(3)&各数据库管理软件&(DBMS)&大多都提供自己的&C/C++&API,在&Windows&下更有&ODBC、OLE/DB&这种中间适配层提供统一的操作接口。下面只列出一些轻量级、开源的持久化功能。s11n:,一个基于&STL&的&C++&库,用于序列化&POD&类型、STL&容器以及用户定义类型。MySQL&Connector/C++:,MySQL&数据库客户端操作的&C++&API。默认发布的&MySQL&安装包中包含其&C&语言的&API&(MySQL&Connector/C)。SQLite:,轻量级的&SQL&DBMS,没有&SQL&的服务器端,单纯基于文件存储。提供&API&支持,使用户执行&SQL&语句来查询/操纵数据,Firefox&3&就使用&SQLite&保存其配置数据。加解密&|&Cryptographic
Crypto++:,&。C++&封装的加解密算法库。Crypto++&是各种算法的合集,包括对称密码、非对称密码、摘要算法。OpenSSL:。C&API&的加解密算法库,以及&SSL&协议实现。OpenSSL&不只是加解密算法库,还包含网络功能(包括未使用和使用加密通道&SSL)和实用工具。日志&|&Logging
Log&for&C++&(Log4cpp)
:SUN&developers&上的&Log4cpp&教学示例。
Log4cpp&主要用于&C++&程序中写日志,有着较强的跨平台移植能力。除了日志功能外,Log4cpp&中包括很多可移植的基础功能,例如:同步功能&(Condition,&CriticalSection,&Event,&Mutex,&Semaphore)、网络功能&(Socket,&ServerSocket,&DatagramSocket,&SocketInputStream,&SocketOutputStream)、文件监控&(FileWatchdog)、智能指针&(ObjectPtrT)、字符串处理&(StrictMath,&StringHelper,&StringTokenizer)、线程支持&等。Boost.Log:,用于日志记录的&Boost&库,目前没有放入&Boost&发布包中。log4cxx:,Apache&出的日志功能库。glog:Log4cplus:Logging&In&C++:,这是&DrDobbs&上的一篇文章,教你怎么写出一个&C++&Logging&功能类。函数式编程&|&Functional&Programming
Boost.Lambda:&是&Boost&提供的函数式编程特性。The&Functional&C++&Library&(FC++):,用模板库来实现&C++&的函数式编程。FACT!:,另一个实现&C++&函数式编程的模板库。杂项&|&MISC
CppUnit:,一个&C++&的单元测试框架,由&JUnit&移植而来,使用派生测试类的方式产生测试用例。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:193628次
积分:2079
积分:2079
排名:第16081名
原创:35篇
转载:56篇
评论:24条
(1)(3)(2)(5)(5)(1)(3)(3)(12)(7)(8)(2)(19)(1)(1)(2)(6)(4)(3)(2)(1)(2)

我要回帖

更多关于 人民日报重要言论库 的文章

 

随机推荐