![e9bac0f8e6bc320515fd057e0d07da26.png](https://i-blog.csdnimg.cn/blog_migrate/0f59f0babcd49e1b89b6d58100fb4de1.png)
C/C++ 作为元老级的编程语言,任时光更迭依旧屹立不倒,哪怕如今炙手可热的AI,其底层也是用其编写。
那么作为新手该如何快速上手 C++ 呢?当然是敲代码啊!一切不写代码的学编程都是瞎搞。下面为大家精选了 22 个 C++ 项目,推荐新人练手首选!
1.C++ 实现基数树
使用 C++ 实现Radix树:一种基于二进制表示的键值的查找树,尤其适合处理非常长的、可变长度的键值,Patricia 的基本思想是构建一个二叉树。
C++ 实现基数树 radix treewww.shiyanlou.com![77c66a5c90ebb8688e3fea523f215b79.png](https://i-blog.csdnimg.cn/blog_migrate/27e0af9643867e15a2e4a154dffcafff.jpeg)
2.C++ 实现并行计算的K-Means聚类算法
使用 C++ 实现一个完整的面向对象的可并行K-Means算法。
C++ 实现并行计算的K-Means聚类算法www.shiyanlou.com![5a70a083d552ea034fb1c3f4e45d835a.png](https://i-blog.csdnimg.cn/blog_migrate/41f0bbdb616dc364182d4a1145d9f8c5.jpeg)
3.C++ 实现 STL 标准库和算法
实现 C++ STL 的容器和算法的实现。
C++ 实现 STL 标准库和算法www.shiyanlou.com![9d56c75ba508887c52cc2a14f2ca6811.png](https://i-blog.csdnimg.cn/blog_migrate/67e0c1dd8897400ed7f685450171ef5f.jpeg)
4.C++ 实现内存泄露检查器
内存泄漏一直是 C++ 中比较令人头大的问题, 即便是很有经验的 C++ 程序员有时候也难免因为疏忽而写出导致内存泄漏的代码。本项目使用 C++ 实现一个内存泄漏检查器。
C++ 实现内存泄露检查器_C++ - 实验楼www.shiyanlou.com![5ac66cbf14578c77788a9b162617c815.png](https://i-blog.csdnimg.cn/blog_migrate/78a341c10714ac66c9fd4f5e9d3468e1.jpeg)
![d8a653cb4ecc9b4af703f17d8a0d0aa5.png](https://i-blog.csdnimg.cn/blog_migrate/5bf130603385142d020b554f655d4e7c.jpeg)
5.C++ 实现高性能内存池
获得内存池所分配的内存速度高于从堆中获得分配的内存的速度,一个长期稳定运行的服务在追求极致的过程中,实现内存池是必不可少的。和标准库中的默认分配器一样,内存池本质上也是分配器,本项目设计并使用 C++实现一个高性能内存池。
C++ 实现高性能内存池_C++ - 实验楼www.shiyanlou.com![f63e7e488db213cde8769a129e463f91.png](https://i-blog.csdnimg.cn/blog_migrate/f414aa051097df03c45cb83b76d18e0e.png)
![411a003184170502f8988b8567b07034.png](https://i-blog.csdnimg.cn/blog_migrate/6288b67d0b931772a93245913c2b6d2f.jpeg)
6.C++ 实现高性能 RTTI 库
RTTI 是运行时类型识别的英文缩写,C++ 本身提供了运行时类型检查的运算符 dynamic_cast 和 typeid,然而 dynamic_cast 的效率其实并不理想,需要牺牲一定性能。本项目将使用 C++ 手动实现一个高性能 RTTI 库。
C++ 实现高性能 RTTI 库www.shiyanlou.com![a4ddae89833866e2c6de0c42154ef397.png](https://i-blog.csdnimg.cn/blog_migrate/aab9f4ea1d267395a6e148becf3880d1.jpeg)
![e0c5873e332b38ac8e919dffca3a2b10.png](https://i-blog.csdnimg.cn/blog_migrate/f04f95a4873aa790134a4be6ab0f3e9f.jpeg)
7.C++ 实现智能指针
使用C++语言实现智能指针的过程,来了解C++基本程序设计的方法,包括类的定义与使用,运算符的重载,模板类的使用方法,以及引用计数技术。
C++ 实现智能指针_C++ - 实验楼www.shiyanlou.com![47667a66798e2634c6f7cdc557939df4.png](https://i-blog.csdnimg.cn/blog_migrate/d99b0df6b91940bdcc83610086df680d.png)
8.C++ 实现即时通信软件
使用 C++ 实现一个具备服务端和客户端的即时通信聊天室,涉及网络编程,C++面向对象程序设计等知识。
C++ 实现即时通信软件_C++ - 实验楼www.shiyanlou.com![e58c2e46d7bbc024d3aa03bb627ff4f1.png](https://i-blog.csdnimg.cn/blog_migrate/f65205993df069afe2636bb0d05dfefc.png)
![c55af9f768fba6f6cddae957db31d959.png](https://i-blog.csdnimg.cn/blog_migrate/2c94d8134eb038594c8aa92075f4e5ab.jpeg)
9.C++实现课程管理系统
使用C++ 实现一个课程管理系统,在这个过程中会介绍 C++ 11 的很多特性,同时可以熟悉 Linux下 的 C++ 。
C++实现课程管理系统_C++ - 实验楼www.shiyanlou.com![5f0593ed8c3f0afac02c08b6d00c6775.png](https://i-blog.csdnimg.cn/blog_migrate/dfb5d9e5070e641014d11648534bd48c.png)
![e9706dd930980c734b1ccbbafe87abd6.gif](https://i-blog.csdnimg.cn/blog_migrate/8c2977d8dadd93e00d688cd922e3f3f3.gif)
10.C++ 实现银行排队服务模拟
使用 C++对银行排队服务进行模拟,以事件驱动为核心思想,手动实现模板链式队列、随机数产生器等内容,进而学习概率编程等知识。作为可选进阶,这个模型同时还能稍加修改的应用到 CPU 资源争夺模型中。
C++ 实现银行排队服务模拟www.shiyanlou.com![016a4f8e3f0a2620d6cddc957d78c414.png](https://i-blog.csdnimg.cn/blog_migrate/a05512f3bf73b695ffaa4fb016e6cdbe.jpeg)
11.C++操作 redis 实现异步订阅和发布
操作 redis 实现异步订阅和发布,其中将介绍 redis 基础知识,在linux中安装和使用 redis ,常用的 hiredis API,并实现一个例程。
C++操作 redis 实现异步订阅和发布www.shiyanlou.com![eae90608b57421ca9c1fa24d9e274aaa.png](https://i-blog.csdnimg.cn/blog_migrate/00501b578c7ccd980da7f309eb0f63c5.jpeg)
12.C++ 使用 openGL 实现吃豆人游戏
通过 C++ 和 openGL 库来实现了一个吃豆人的小游戏。使用了标准模板库,既对自己之前知识的检阅也是对 C++ 编程能力的一种提升。
C++ 使用 openGL 实现吃豆人游戏www.shiyanlou.com![540161a40cc8b25322fca4ef7c4f0a94.png](https://i-blog.csdnimg.cn/blog_migrate/aa746822e6108314735ef8bcb8f9d5a7.jpeg)
![1510f5badef3cd5a88bbc7c6214bf6c2.png](https://i-blog.csdnimg.cn/blog_migrate/bc6194e7cdd60753e89c260897649aff.png)
13.C++ 解决迷宫问题
通过 C++ 实现了一个迷宫游戏,游戏不仅涉及到简单的 C++ 游戏思想,还涉及到深度优先遍历算法。
C++ 解决迷宫问题www.shiyanlou.com![c20e88b0f3e0890cca43a56c628d2fd8.png](https://i-blog.csdnimg.cn/blog_migrate/524eb1dbb83986815e40790c7a379032.png)
14.C++ 基于 OpenCV 实现实时监控和运动检测记录
使用 C++ 和 OpenCV 提供的库函数,实现摄像头的实时监控功能,并通过监控画面的运动检测选择是否记录视频。监控人员可选择输出图像的模式以更容易的分辨监控中的异常情况。
C++ 基于 OpenCV 实现实时监控和运动检测记录www.shiyanlou.com![b82927ab819bd6837ba94aa7b608d8c3.png](https://i-blog.csdnimg.cn/blog_migrate/d8931c4e6d669b1aaaad2932d4843059.jpeg)
15.C++ 实现简易 Docker 容器
C++ 与 Linux 的 Namespace 及 Control Group 技术相结合,实现一个简易 Docker 容器。
C++ 实现简易 Docker 容器www.shiyanlou.com![138658a0c2c763d0313d3d82a0b50e78.png](https://i-blog.csdnimg.cn/blog_migrate/c366d030430112be0b2e3e0749c1976e.png)
16.C++ 开发 Web 服务框架
将综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。
C++ 开发 Web 服务框架www.shiyanlou.com![4cfeccc2a166baeb3172ccf1378487f3.png](https://i-blog.csdnimg.cn/blog_migrate/441f93d66d1a740378d0fc0badb108fc.png)
17.C++ 编写 json 生成器
用 C++ 编写一个 json 生成器,生成 json 数据,并学习编写测试用例。
C++ 编写 json 生成器www.shiyanlou.com![6f20379328a36865dbee39368bdc0a43.png](https://i-blog.csdnimg.cn/blog_migrate/4ac4091af250238ea8d5c3e5725764d1.jpeg)
18.C++ 利用 QT 实现 PDF 阅读器
利用 QT 开发环境来实现一个 PDF 阅读器。主要内容包含了 QT 的基本用法以及图形界面的设计,还有第三方库 poppler 的使用。
C++ 利用 QT 实现 PDF 阅读器www.shiyanlou.com![4c2e58310232b0ca40ed629f2bc5da48.png](https://i-blog.csdnimg.cn/blog_migrate/f3992ba2a6e1bdec60eb0a87e373e471.jpeg)
![4f3fe470642f9955cd51fce6e7add3b5.png](https://i-blog.csdnimg.cn/blog_migrate/5554d8b2b9bc60784836302adc7b089d.jpeg)
19.C++17 自制脚本语言
使用 C++ 语言自制一个脚本语言。麻雀虽小五脏俱全,它完整支持函数,条件/位/逻辑运算,原生字符串/数组类型等特性。主要将从理论出发,逐步构建词法分析器,语法分析器,AST,运行时,最终实现一个完整的脚本语言,并且使用该脚本语言解决一些实际问题。
C++17 自制脚本语言_C++ - 实验楼www.shiyanlou.com![c912ad31fed7fd824f18f6039b670a38.png](https://i-blog.csdnimg.cn/blog_migrate/c30fc167220806aedf191b2e02821a02.jpeg)
20.C++ 实现太阳系行星系统
使用 C++实现 OpenGL GLUT 实现一个简单的太阳系行星系统,将涉及一些三维图形技术的数学基础、OpenGL 里的三维坐标系、OpenGL 里的光照模型、GLUT 的键盘事件处理。
C++ 实现太阳系行星系统_C++ - 实验楼www.shiyanlou.com![0383d17aecf36b71be79fd569a54d0d6.png](https://i-blog.csdnimg.cn/blog_migrate/6c18b5480fb9c32d358cfac26bf02bd3.jpeg)
![eae477080f2ff2bc012cfc469d5e2b88.png](https://i-blog.csdnimg.cn/blog_migrate/54e54592e496d17025e9847ff665f02a.jpeg)
21.C++11 从零实现 NoSQL 数据库
使用 C++11 实现了一个完全兼容 redis 的 kv 数据库项目——Qedis;该项目会使用到一些 C++11 核心特性和 STL 库,并利用已有的 tcp 网络库,逐步构建出一个完全兼容 Redis 的更高性能的内存数据库。
C++11 从零实现 NoSQL 数据库www.shiyanlou.com![a3294abf0e3338d0b0c3372dfebe7486.png](https://i-blog.csdnimg.cn/blog_migrate/7896eb97b1f0d6db0cef1167d092c82d.jpeg)
22.C++ 实现 XML 解析
通过 C++ 实现 XML 文档内容解析,充分利用了 C++ 功能特性和泛型编程思想。通过本课程可以规范自己的编程习惯并积累大型项目开发经验。
C++ 实现 XML 解析_C++www.shiyanlou.com![bcf4095b4a4ccc88e804561c91908b50.png](https://i-blog.csdnimg.cn/blog_migrate/195c1656bd511b4f14792622783f1fba.jpeg)