关于可借鉴的C/C++ 程序库,我特意整理了一波与大家分享,覆盖标准库、名气库、网络通信、字符串、线程等,希望对大家有帮助。
内容来源:CSDN博客,原文链接:https://blog.csdn.net/oanqoanq/article/details/7169291,转载请注明。
C++程序库推荐
标准库:标准库中提供了C++程序的基本设施,虽然C++标准库折腾了很多年才正式出台,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作。
Dinkumware C++ Library:P.J.Plauger编写的高品质的标准库,值得一提的是,其编写的库长期被Microsoft采用。
RogueWave Standard C++ Library:这个库在Borland C++ Builder的早期版本中曾经被采用,后来被其他的库给替换了。
SGI STL:SGI公司的C++标准模版库。
STLport:SGI STL库的跨平台可移植版本。
C++名气库推荐
Boost:总体来说是实用价值很高,质量很高的库,现代C++的开发者必备的工具。很多Boost中的库功能堪称对语言功能的扩展,Boost另外一面,比如Graph这样的库则是具有工业强度,结构良好,非常值得研读的精品代码,并且也可以放心的在产品代码中多多利用。Boost中比较有名气的库推荐:
Regex 正则表达式库
Spirit LL parser framework,用C++代码直接表达EBNF
Graph 图组件和算法
Lambda 在调用的地方定义短小匿名的函数对象,很实用的functional功能
concept check 检查泛型编程中的concept
Mpl 用模板实现的元编程框架
Thread 可移植的C++多线程库
Python 把C++类和函数映射到Python之中
Pool 内存池管理
GUI :在众多C++的库中,GUI部分的库算是比较繁荣,也比较引人注目的。在实际开发中,GUI库的选择也是非常重要的一件事情,下面我们综述一下可选择的GUI库,各自的特点以及相关工具的支持。
MFC:虽然从技术角度讲,MFC是不大漂亮的,但是它构建于Windows API之上,能够使程序员的工作更容易,编程效率高。
QT:多平台的C++图形用户界面应用程序框架,提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。
WxWindows:跨平台的GUI库。因为其类层次极像MFC。
网络通信
ACE:C++库的代表,超重量级的网络通信开发框架,可跨越多种平台完成通用的通信软件任务。
StreamModule:设计用于简化编写分布式程序的库。尝试着使得编写处理异步行为的程序更容易,而不是用同步的外壳包起异步的本质。
SimpleSocket:基于socket的客户/服务器程序更加容易。
A Stream Socket API for C++:又一个对Socket的封装库。
线程
C++ Threads:这个库的目标是给程序员提供易于使用的类,这些类被继承以提供在Linux环境中很难看到的大量的线程方面的功能。
ZThreads:跨平台的C++线程和同步库。
字符串
C++ Str Library:操作字符串和字符的库,支持Windows和支持gcc的多种平台。
Common Text Transformation Library:解析和修改STL字符串的库。
GRETA:由微软研究院的研究人员开发的处理正则表达式的库,在小型匹配的情况下有非常优秀的表现。
C语言开源项目:
Webbench:在Linux下使用的非常简单的网站压测工具,使用C语言编写, 代码超级简洁,源码加起来几乎不到600行。
Tinyhttpd:超轻量型Http Server,C语言开发,附带简单的Client,可通过阅读这段代码理解一个 Http Server 的本质。
cJSON:C语言中的一个JSON编解码器,非常轻量级,速度非常理想。结构简单易懂,可以作为一个非常好的C语言项目进行学习。
CMockery:Google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。
Libev:基于Reactor模式,效率较高,并且代码精简,是学习事件驱动编程的很好的资源。
Memcached:Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。
Lua:在任何支持ANSI C编译器的平台上都可以轻松编译通过。
SQLite:SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。
NETBSD:NetBSD是一个免费的,具有高度移植性的 UNIX-like 操作系统,是现行可移植平台最多的操作系统。
想要在程序员生涯内有更高的成就的话,最最重要的是尽可能的提升自己的编程能力,并且,与其想着怎么去提升,不如从现在开始动手动脑,如果对于C/C++感兴趣的话,可以关注+私信小编【编程交流】有一些视频希望可以帮助到你,学习不怕从零开始,就怕从不开始。