c++ 常用库

该文章已生成可运行项目,

一、标准库(C++ Standard Library)

C++ 标准库是语言自带的核心库,无需额外安装,包含基础功能组件:

  • 容器库(Containers)
    提供常用数据结构:vector(动态数组)、list(双向链表)、map/unordered_map(键值对映射)、set/unordered_set(集合)等,支持快速插入、删除和查找。
  • 算法库(Algorithms)
    包含排序(sort)、查找(find)、转换(transform)、迭代(for_each)等通用算法,可直接作用于容器,提高代码复用性。
  • 字符串库(Strings)
    std::string 类提供字符串操作(拼接、查找、替换等),支持 Unicode 和多字节字符。
  • 输入输出库(IO Streams)
    包含 iostream(控制台 IO)、fstream(文件 IO)、stringstream(字符串流),支持格式化读写。
  • 智能指针(Smart Pointers)
    unique_ptrshared_ptrweak_ptr 等,自动管理内存,避免内存泄漏。

二、基础工具库

1. Boost
  • 简介:最知名的 C++ 扩展库集合,被称为 “准标准库”,许多功能已被纳入 C++ 标准(如 std::shared_ptr 源自 Boost)。
  • 核心组件
    • Boost.Asio:网络与异步 IO 库,支持 TCP/UDP、串口通信。
    • Boost.PointerContainer:智能指针容器,简化动态对象管理。
    • Boost.Regex:正则表达式库,支持复杂字符串匹配。
    • Boost.Thread:跨平台线程库,提供线程、 mutex、条件变量等。
  • 适用场景:需要跨平台、高性能基础工具的项目。
  • 官方地址:https://www.boost.org/
  • 获取方式:官网下载源码编译,或通过包管理器(如 Ubuntu 的 apt install libboost-all-dev、Windows 的 vcpkg)安装。
2. Abseil
  • 简介:Google 开源的基础库,专注于现代 C++ 实践,包含字符串处理、容器优化、哈希算法等。
  • 特点:轻量、高效,与 Google 内部项目(如 Chrome、TensorFlow)兼容,适合大型项目。
  • 官方地址:https://abseil.io/
  • 获取方式:通过 GitHub 仓库 克隆,支持 CMake 构建。

三、数据处理与算法

1. Eigen
  • 简介:高性能线性代数库,支持矩阵运算、向量操作、线性方程组求解等。
  • 优势:纯头文件库(无需编译),速度接近手写优化代码,广泛用于科学计算、机器学习(如 TensorFlow 底层依赖)。
  • 官方地址:http://eigen.tuxfamily.org/
  • 获取方式:官网下载源码,解压后直接包含头文件即可使用(无需编译)。
2. PCL(Point Cloud Library)
  • 简介:点云处理库,用于 3D 点云数据的获取、滤波、分割、配准等,适用于机器人、自动驾驶等领域。
  • 官方地址:https://pointclouds.org/
  • 获取方式:官网提供预编译包,或通过 GitHub 源码编译,支持 vcpkg 安装(vcpkg install pcl)。
3. CGAL(Computational Geometry Algorithms Library)
  • 简介:计算几何库,提供多边形、网格、空间划分等几何算法,用于地理信息、计算机图形等场景。
  • 官方地址:https://www.cgal.org/
  • 获取方式:官网下载源码,或通过包管理器(如 Ubuntu 的 apt install libcgal-dev)安装。

四、网络与通信

1. libcurl
  • 简介:跨平台网络传输库,支持 HTTP、HTTPS、FTP 等协议,可用于发送请求、下载文件。
  • 特点:轻量、稳定,被广泛用于客户端网络通信(如浏览器、下载工具)。
  • 官方地址:https://curl.se/libcurl/
  • 获取方式:官网下载源码,或通过包管理器(apt install libcurl4-openssl-devvcpkg install curl)安装。
2. Poco C++ Libraries
  • 简介:跨平台网络与应用框架,包含 HTTP 服务器 / 客户端、日志、数据库连接等组件,适合快速开发网络应用。
  • 官方地址:https://pocoproject.org/
  • 获取方式:官网下载源码,或通过 vcpkg 安装(vcpkg install poco)。
3. WebSocket++
  • 简介:WebSocket 协议的 C++ 实现,支持实时双向通信,用于即时通讯、游戏服务器等场景。
  • 官方地址:https://www.zaphoyd.com/websocketpp
  • 获取方式:通过 GitHub 仓库 获取,纯头文件库,依赖 Boost 库。

五、图形与可视化

1. Qt
  • 简介:跨平台 GUI 框架,包含窗口组件、绘图、多媒体、网络等模块,支持 C++ 和 QML(声明式语言)。
  • 优势:一次编写多平台运行(Windows/macOS/Linux/ 嵌入式),适合开发桌面应用、嵌入式界面。
  • 官方地址:https://www.qt.io/
  • 获取方式:官网下载 Qt 安装器(含 IDE 和预编译库),开源版本免费使用。
2. SFML(Simple and Fast Multimedia Library)
  • 简介:轻量级多媒体库,支持 2D 图形渲染、音频播放、窗口管理,适合开发小游戏、多媒体工具。
  • 官方地址:https://www.sfml-dev.org/
  • 获取方式:官网下载预编译包,或通过 vcpkg 安装(vcpkg install sfml)。
3. OpenGL/DirectX 绑定库
  • 简介:底层图形 API 的 C++ 封装(如 GLFWGLM),用于 3D 渲染,需配合 shader 编程使用,适合高性能图形应用。
  • GLFW(窗口管理):https://www.glfw.org/
  • GLM(数学库):https://glm.g-truc.net/
  • 获取方式:官网下载源码,或通过包管理器安装。

六、数据库与存储

1. SQLite C/C++ Interface
  • 简介:嵌入式数据库库,无需独立服务器,适合轻量级数据存储(如移动端、本地应用)。
  • 官方地址:https://www.sqlite.org/
  • 获取方式:官网下载源码或预编译库,纯 C 接口,可直接在 C++ 中使用。
2. MySQL Connector/C++
  • 简介:MySQL 数据库的 C++ 驱动,支持连接 MySQL 服务器、执行 SQL 语句。
  • 官方地址:https://dev.mysql.com/downloads/connector/cpp/
  • 获取方式:官网下载对应平台的安装包或源码。
3. RocksDB
  • 简介:Facebook 开源的高性能键值存储库,基于 LSM 树,适合高写入场景(如日志存储、缓存)。
  • 官方地址:https://rocksdb.org/
  • 获取方式:通过 GitHub 仓库 获取,支持 CMake 构建。

七、测试与调试

1. Google Test(GTest)
  • 简介:Google 开源的单元测试框架,支持断言、测试套件、参数化测试,是 C++ 测试的事实标准。
  • 官方地址:https://google.github.io/googletest/
  • 获取方式GitHub 仓库,支持 vcpkg 安装(vcpkg install gtest)。
2. Catch2
  • 简介:轻量级测试框架,无需复杂配置,语法简洁,适合小型项目快速测试。
  • 官方地址:https://catch2.docsforge.com/
  • 获取方式GitHub 仓库,纯头文件版本可直接包含使用。
3. Valgrind
  • 简介:内存调试工具,可检测内存泄漏、越界访问等问题,配合 gdb 用于调试。
  • 官方地址:https://valgrind.org/
  • 获取方式:Linux 包管理器安装(apt install valgrind),源码需编译。

八、机器学习与深度学习

1. TensorFlow C++ API
  • 简介:TensorFlow 的 C++ 接口,用于部署训练好的模型,适合高性能推理场景。
  • 官方地址:https://www.tensorflow.org/install/c(C API 可在 C++ 中使用)
  • 获取方式:官网下载预编译库,或从源码编译。
2. PyTorch C++ Frontend
  • 简介:PyTorch 的 C++ 前端,支持模型定义、训练和推理,保留 Python 版本的灵活性。
  • 官方地址:https://pytorch.org/cppdocs/
  • 获取方式:随 PyTorch 安装(需编译时启用 C++ 支持),或通过 GitHub 源码构建。
3. Dlib
  • 简介:机器学习库,包含人脸识别、目标检测、线性代数等功能,文档丰富,适合快速实现视觉相关任务。
  • 官方地址:http://dlib.net/
  • 获取方式:官网下载源码,或通过 vcpkg 安装(vcpkg install dlib)。

九、其他实用库

  • spdlog:快速日志库,支持多线程、格式化输出,性能优于标准库的 iostream
    • spdlog(日志库):https://github.com/gabime/spdlog
  • nlohmann/json:现代 C++ JSON 库,语法简洁,支持序列化 / 反序列化,纯头文件实现。
    • nlohmann/json(JSON 库):https://github.com/nlohmann/json
  • fmt:格式化库,替代 printfstd::format,支持类型安全和自定义格式。
    • fmt(格式化库):https://fmt.dev/latest/index.html
本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值