加载中...
C++开源库 108 杰
{{ brief.revision === 1 ? "初版" : `第${brief.revision}版` }}
技术
·
计算机软件
·
有C++基础,希望快速了解,掌握三方库的学习者
课程缩略

学了很久,学了很多,还是觉得用C++写不出什么有用有趣的程序?

别让C/C++开源库在收藏夹里吃灰,是时候让它们在代码里 “活” 起来了!
精选 108 个 C/C++ 开源库,从图片处理到网络通信,覆盖多个领域,跟随本课程,每个库你都可以快速上手,告别纸上谈兵,每一次实操都是编程能力的提升。无论是学生党还是开发者,都能收获满满。
别再犹豫,一起开启 C++ 开源库的实战之旅,让收藏不再沉睡!

最新发布
第6节:libSnappy-快速压缩工具
不求高压缩比,只求速度快,耗能低,来自 Google
第5节:libb64-理解并玩转base64编码
深入理解base64,轻松玩转libb64
第4节:nlohmann/json-自然的JSON库
使用自然,开发高效,github 网站上排名第1的C++JSON库
题图

学过很多编程语言,其中的 C++ 语言特别难搞——
需要学习内容特别的多,总体投入的时间也是所有语言中最长的。结果,它却是最不容易出活的一门语言。

为什么?从根本上分析,就两个原因:

  1. C++ 语言太深
  2. C++ 标准库太窄

详细解读与本课程介绍,请观看视频——

本课程通过快速讲解(但决非蜻蜓点水)讲解108个精选的C/C++第三库,助力解决 C++ 程序员编写各类程序时发现 C++ 标准库不够用的困窘。

1. 已完成的库(定期更新)

人物关联仅供一乐,勿较真 :)

表:已完成库及关联人物解释

库功能 人物 关联说明
fswatch 文件监控 袁彬(明代锦衣卫) 监控】袁彬作为锦衣卫,职责是监视、侦查。fswatch 的核心功能是监控文件系统的变化。两者都体现了“密切关注变化”的核心概念。
libconv 字符编码转换 仓颉(传说中的造字者) 符号解释】仓颉创造文字符号系统,解决信息记录和传递的根本问题;libiconv 在不同符号系统(字符编码)之间进行转换,解决信息在不同系统间交流的障碍。两者都处理“信息符号的基础”。
CLI11 命令行解析 怀恩(明代司礼监) 指令传递】怀恩作为皇帝近侍,负责传达圣旨。CLI11 负责精准传达程序用户(最高主人)通过命令行下达的指令。两者都扮演“传递权威指令”角色。
nlohmann/json JSON 处理 张骞 (汉代丝绸之路开拓者) 信息交换桥梁】张骞开辟了东西方文化与商品交换的物理通道,JSON 是现代应用间进行结构化数据交换的通用语言;两者都象征着“打破壁垒,实现不同实体间结构化信息顺畅流通”。
libb64 base64编码 摩尔斯(美国,电报摩斯码发明者) 以极简表达无穷】摩斯电码用两个符号编码无穷文字,base64 用 64 个字符编码无穷信息;两者都是解决“如何在特定限制条件下安全可靠地编解码信息”的经典方案。
libSnappy 快速压缩 陈瑄 (明代漕运总督) 高效传输】为解决大明帝国北方战线的物资供给难题,陈瑄在军方制度森严的物流通道大胆接入民间渠道,看似草率,却极大降低中央行政负载,百倍解决大军粮草运输问题。libSnappy 看似压缩率不高,却极大减轻中央处理器的负载,于带宽和计算之间取得绝佳平衡,是系统化提升数据传输效率的典范。
spdlog 日志记录 司马迁(西汉史官) 可靠记录】司马迁在极端情况下毕生撰史,留下宝贵史实,后人得以深刻理解中华帝国之运转;spdlog 同样负责在极端压力下,可靠记录软件系统极为复杂的运行信息。

2. 已纳入计划的库(序号非发布顺序)

  1. libfswatch:文件变动监控
  2. libiconv:字符集或编码转换
  3. CLI11:首选的现代 C++ 命令行解析器,原生支持与配置文件配合
  4. nlohmann/json:使用自然,开发高效的JSON编码处理库(github 榜一大哥)
  5. libb64:深入理解 base64 编码,轻松玩转 libb64 使用
  6. libSnappy:中庸而非平庸,来自 Google,适用面极大的压缩库
  7. spdlog : 首选的现代 C++ 的高性能日志库
  8. pystring - Python风格的字符串工具函数
  9. bzip2 - 文件压缩与解压
  10. rtmidi : midi 播放
  11. exiv2 : 获取照片元信息
  12. libzen 获取媒体文件元信息
  13. libSDL2/3: C语言 2D 游戏引擎:Simple DirectMedia Layer
  14. libSFML2/3: C++语言 2D 游戏引擎:Simple & Fast Multimedia Library
  15. fmt : 字符串格式化工具 (已部分进入 C++)
  16. libcurl: 老牌好用的,C语言网络客户端
  17. cpr: 人类该有的 C++ 网络请求器(客户端)
  18. CImg: 跨平台强大的C++图像处理库
  19. range-v3: 基于范围的算法,部分已进入 C++20新标
  20. robin-map : “劫富济贫”的哈希表
  21. fast-float: 高性能浮点数转换
  22. double-conversion: V8 也在用的数制转换器
  23. libfrozen : “冰冻” 的容器
  24. highway : C++ library for SIMD
  25. redis++ :C++ 的 Reids 客户端
  26. libsqlite3: SQLite3 客户端
  27. sqlite-orm : 基于 SQLite3 的ORM(对象-关系映射)
  28. OPENSSL:网络通信安全的守护人
  29. YAML-cpp:是的,又一个 “ML” 的 CPP 客户端
  30. TOM11 : 又又一个 ML,TOML的C++11 格式处理
  31. cereal : 现代 C++ 风格的系列化库
  32. tl-expected :简洁高效地处理预期失败
  33. inja : jinja 风格的 C++ 文本模板库
  34. http-parser : node.js 在用的 HTTP 报文解析器
  35. skarg-url : URL 解析器
  36. dlib:著名的机器学习库
  37. tiny-dnn:深度学习库
  38. sol2:在C++中调用lua
  39. cppcoro:一个C++协程库
  40. libmariadbclient: msyql/mariadb 数据库客户端C库
  41. meta.hpp:反射库
  42. cpp-terminal: C++终端组件库
  43. ftxui :又一个组件丰富的终端 UI 库
  44. wxWidgets 3:使用系统原生UI接口实现的跨平图形 UI 库
  45. stb-image:图像生成与处理库
  46. nana : C++ 轻量 GUI 库
  47. OpenCL:并行处理库
  48. utf8cpp : UNICODE 编码转换
  49. gflags:google 家的 C++ 命令行参数库
  50. crypto++ :加密算法库
  51. expresscpp :C++ 实现的 REST 网络 API 框架
  52. mosquitto: 物联网网络基础组件
  53. doctest:带文档功能的代码测试框架
  54. trompeloeil:c++ 单元测试 mock 库
  55. asio : 著名C++异步网络库

包含课文
课文缩略
轻轻松松把文件系统变成本地消息队列
{{ parseTime('2025-02-14T04:04:48+08:00') }}
课文缩略
解决中文汉字乱码的神器
{{ parseTime('2025-03-03T14:01:26+08:00') }}
课文缩略
首选的现代C++风格命令行参数解析器
{{ parseTime('2025-03-18T15:01:24+08:00') }}
课文缩略
使用自然,开发高效,github 网站上排名第1的C++JSON库
{{ parseTime('2025-05-04T16:15:54+08:00') }}
课文缩略
深入理解base64,轻松玩转libb64
{{ parseTime('2025-05-30T13:23:30+08:00') }}
课文缩略
不求高压缩比,只求速度快,耗能低,来自 Google
{{ parseTime('2025-06-03T20:42:22+08:00') }}
所属课系
C++17新标C++编程从小白到高手
现代 C++ 学习新路线