C/C++ 作為元老級的程式設計語言,任時光更疊依舊屹立不倒,哪怕如今炙手可熱的AI,其底層也是用其編寫。
那麼作為新手該如何快速上手 C++ 呢?當然是敲代碼啊!一切不寫代碼的學程式設計都是瞎搞。下面為大家精選了 22 個 C++ 項目,推薦新人練手首選!
1.C++ 實作基數樹
使用 C++ 實作Radix樹:一種基于二進制表示的鍵值的查找樹,尤其适合處理非常長的、可變長度的鍵值,Patricia 的基本思想是建構一個二叉樹。
2.C++ 實作并行計算的K-Means聚類算法
使用 C++ 實作一個完整的面向對象的可并行K-Means算法。
3.C++ 實作 STL 标準庫和算法
實作 C++ STL 的容器和算法的實作。
4.C++ 實作記憶體洩露檢查器
記憶體洩漏一直是 C++ 中比較令人頭大的問題, 即便是很有經驗的 C++ 程式員有時候也難免因為疏忽而寫出導緻記憶體洩漏的代碼。本項目使用 C++ 實作一個記憶體洩漏檢查器。

5.C++ 實作高性能記憶體池
獲得記憶體池所配置設定的記憶體速度高于從堆中獲得配置設定的記憶體的速度,一個長期穩定運作的服務在追求極緻的過程中,實作記憶體池是必不可少的。和标準庫中的預設配置設定器一樣,記憶體池本質上也是配置設定器,本項目設計并使用 C++實作一個高性能記憶體池。
6.C++ 實作高性能 RTTI 庫
RTTI 是運作時類型識别的英文縮寫,C++ 本身提供了運作時類型檢查的運算符 dynamic_cast 和 typeid,然而 dynamic_cast 的效率其實并不理想,需要犧牲一定性能。本項目将使用 C++ 手動實作一個高性能 RTTI 庫。
7.C++ 實作智能指針
使用C++語言實作智能指針的過程,來了解C++基本程式設計的方法,包括類的定義與使用,運算符的重載,模闆類的使用方法,以及引用計數技術。
8.C++ 實作即時通信軟體
使用 C++ 實作一個具備服務端和用戶端的即時通信聊天室,涉及網絡程式設計,C++面向對象程式設計等知識。
9.C++實作課程管理系統
使用C++ 實作一個課程管理系統,在這個過程中會介紹 C++ 11 的很多特性,同時可以熟悉 Linux下 的 C++ 。
10.C++ 實作銀行排隊服務模拟
使用 C++對銀行排隊服務進行模拟,以事件驅動為核心思想,手動實作模闆鍊式隊列、随機數産生器等内容,進而學習機率程式設計等知識。作為可選進階,這個模型同時還能稍加修改的應用到 CPU 資源争奪模型中。
11.C++操作 redis 實作異步訂閱和釋出
操作 redis 實作異步訂閱和釋出,其中将介紹 redis 基礎知識,在linux中安裝和使用 redis ,常用的 hiredis API,并實作一個例程。
12.C++ 使用 openGL 實作吃豆人遊戲
通過 C++ 和 openGL 庫來實作了一個吃豆人的小遊戲。使用了标準模闆庫,既對自己之前知識的檢閱也是對 C++ 程式設計能力的一種提升。
13.C++ 解決迷宮問題
通過 C++ 實作了一個迷宮遊戲,遊戲不僅涉及到簡單的 C++ 遊戲思想,還涉及到深度優先周遊算法。
14.C++ 基于 OpenCV 實作實時監控和運動檢測記錄
使用 C++ 和 OpenCV 提供的庫函數,實作攝像頭的實時監控功能,并通過監控畫面的運動檢測選擇是否記錄視訊。監控人員可選擇輸出圖像的模式以更容易的分辨監控中的異常情況。
15.C++ 實作簡易 Docker 容器
C++ 與 Linux 的 Namespace 及 Control Group 技術相結合,實作一個簡易 Docker 容器。
16.C++ 開發 Web 服務架構
将綜合使用 C++11 及 Boost 中的 Asio 實作 HTTP 和 HTTPS 的伺服器架構。
17.C++ 編寫 json 生成器
用 C++ 編寫一個 json 生成器,生成 json 資料,并學習編寫測試用例。
18.C++ 利用 QT 實作 PDF 閱讀器
利用 QT 開發環境來實作一個 PDF 閱讀器。主要内容包含了 QT 的基本用法以及圖形界面的設計,還有第三方庫 poppler 的使用。
19.C++17 自制腳本語言
使用 C++ 語言自制一個腳本語言。麻雀雖小五髒俱全,它完整支援函數,條件/位/邏輯運算,原生字元串/數組類型等特性。主要将從理論出發,逐漸建構詞法分析器,文法分析器,AST,運作時,最終實作一個完整的腳本語言,并且使用該腳本語言解決一些實際問題。
20.C++ 實作太陽系行星系統
使用 C++實作 OpenGL GLUT 實作一個簡單的太陽系行星系統,将涉及一些三維圖形技術的數學基礎、OpenGL 裡的三維坐标系、OpenGL 裡的光照模型、GLUT 的鍵盤事件處理。
21.C++11 從零實作 NoSQL 資料庫
使用 C++11 實作了一個完全相容 redis 的 kv 資料庫項目——Qedis;該項目會使用到一些 C++11 核心特性和 STL 庫,并利用已有的 tcp 網絡庫,逐漸建構出一個完全相容 Redis 的更高性能的記憶體資料庫。
22.C++ 實作 XML 解析
通過 C++ 實作 XML 文檔内容解析,充分利用了 C++ 功能特性和泛型程式設計思想。通過本課程可以規範自己的程式設計習慣并積累大型項目開發經驗。