一份C++学习资源整理,咬牙切齿地好用。
多年以后,你已經是一名技術總監,有一個美麗的妻子,兩個孩子;你已經擁有了現在的你想都不敢想的一切;那時,你也一定會忘記,今天這篇教程,如同一顆石子,鋪就過你前進的路。
下面是我們的老師根據現有資源整理的一個C++學習路徑。通過使用 C++ 語言實現 Web 服務器,Markdown 解析器,內存池以及 Docker 容器管理工具等,學習并實踐 C++ 編程基礎,C++ 11/14 標準,C++ 圖像處理及增強現實技術。完成本路徑所有教程,將能夠使用 C++ 獨立實現復雜的應用程序。
“成為編程大牛要一門好語言加一點點天分。一門好語言,一點點天分,再加一份堅持。要是天分少,光靠堅持也行。”
基礎知識
1. Linux 基礎入門(新版)
2. Vim編輯器
3. Git 實戰教程
4. GDB 簡明教程
5. 跟我一起來玩轉Makefile
本教程的正確食用姿勢:區別于目前所有主流教程,這類教程的核心就是動手跟著文檔說明,在在線的Linux系統中一步一步地敲出基礎知識,各種有趣項目;走出只看書、看視頻卻不動手的禁區,你會比別人學的更快的,放心。
入門項目
1. C++ 實現太陽系行星系統
使用 C++實現 OpenGL GLUT 實現一個簡單的太陽系行星系統,將涉及一些三維圖形技術的數學基礎、OpenGL 里的三維坐標系、OpenGL 里的光照模型、GLUT 的鍵盤事件處理。
2. C++實現運動目標的追蹤
利用 OpenCV 來實現對視頻中動態物體的追蹤。進行本教程學習時,您需要先完成 C++實現太陽系行星運行系統的相關實驗,才能進行之后的學習。
3. C++ 實現銀行排隊服務模擬
使用 C++對銀行排隊服務進行模擬,以事件驅動為核心思想,手動實現模板鏈式隊列、隨機數產生器等內容,進而學習概率編程等知識。
4. 1小時入門增強現實技術
基于OpenCV實現一個將3D模型顯示在現實中的小例子,學習基于Marker的AR技術,既簡單又有趣。
5. C++ 基于 OpenCV 實現實時監控和運動檢測記錄
使用 C++ 和 OpenCV 提供的庫函數,實現攝像頭的實時監控功能,并通過監控畫面的運動檢測選擇是否記錄視頻。監控人員可選擇輸出圖像的模式以更容易的分辨監控中的異常情況。
6. 使用OpenCV&&C++進行模板匹配
使用OpenCV&&C++進行模板匹配,在一張大圖中去查找并圈出目標小圖。你將學習到關于OpenCV的一些函數用法和模板匹配的完整流程。
7. 使用OpenCV進行圖片平滑處理打造模糊效果
利用OpenCV中的平滑處理和線性濾波器對圖片進行處理,打造模糊效果。將介紹歸一化濾波器,高斯濾波器,中值濾波器,雙邊濾波器這四種濾波器的相關知識,并且會對“核”和卷積進行相應的講解。
8. C++ 實現即時通信軟件
使用C++實現一個具備服務端和客戶端的即時通信聊天室,涉及網絡編程,C++面向對象程序設計等知識。
9. C++實現課程管理系統
使用 C++ 實現一個課程管理系統,在這個過程中會介紹C++11的很多特性,同時可以熟悉Linux下的C++語言編譯方法及簡單的Makefile編寫。
中場休息,笑一笑吧
進階項目
1. C++11/14 高速上手教程
如果你還在使用傳統 C++,打著 C++ 的名號寫出 C 語言代碼,請停下來。本教程將帶領你快速上手 C++11/14 的重要特性。
2. ffmpeg 結合 SDL 編寫播放器
學習 C++ 利用 ffmpeg 解碼視頻數據,將解碼后的視頻數據播放出來。學習 ffmpeg 和 SDL 基本的用法。
3. 100 行 C++ 代碼實現線程池
使用 C++ 及大量 C++11新特性設計并實現一個線程池庫。
4. C++ 實現高性能內存池
獲得內存池所分配的內存速度高于從堆中獲得分配的內存的速度,一個長期穩定運行的服務在追求極致的過程中,實現內存池是必不可少的。和標準庫中的默認分配器一樣,內存池本質上也是分配器
5. C++ 開發 Web 服務框架
綜合使用 C++11 及 Boost 中的 Asio 實現 HTTP 和 HTTPS 的服務器框架。
6. C++ 打造 Markdown 解析器
使用 C++ 實現 Markdown 解析器,并將解析的內容生成為 HTML。
7. C++ 使用 Crypto++ 庫實現常用的加密算法
利用 Cryto++庫 對字符串進行 AES 加密和解密,RSA 加密和解密,生成 MD5 值。其中主要用到了 Crypto++ 庫,這是開源的C++數據加密算法庫,支持如下算法:RSA、MD5、DES、AES、SHA-256等等。
8. C++ 編寫 json 生成器
介紹 json 和一些常見的 json 庫,并用 C++ 編寫一個 json 生成器,生成 json 數據,并學習編寫測試用例。
9. C++ 實現基數樹 radix tree
Radix樹 , 這是一種基于二進制表示的鍵值的查找樹,尤其適合處理非常長的、可變長度的鍵值,Patricia 的基本思想是構建一個二叉樹。
10. C++ 實現智能指針
使用C++語言實現智能指針的過程,來了解C++基本程序設計的方法,包括類的定義與使用,運算符的重載,模板類的使用方法,以及引用計數技術。
高級項目
1. C++操作 redis 實現異步訂閱和發布
操作 redis 實現異步訂閱和發布,其中將介紹 redis 基礎知識,在linux中安裝和使用 redis ,常用的 hiredis API,并實現一個例程。
2. C++ 實現簡易 Docker 容器
Docker 的本質是使用 LXC 實現類似虛擬機的功能,進而節省的硬件資源提供給用戶更多的計算資源。本項目將 C++ 與 Linux 的 Namespace 及 Control Group 技術相結合,實現一個簡易 Docker 容器。
3. C++ 實現內存泄露檢查器
內存泄漏一直是 C++ 中比較令人頭大的問題, 即便是很有經驗的 C++程序員有時候也難免因為疏忽而寫出導致內存泄漏的代碼。除了基本的申請過的內存未釋放外,還存在諸如異常分支導致的內存泄漏等等。本項目將使用 C++ 實現一個內存泄漏檢查器。
4. C++ 實現高性能 RTTI 庫
RTTI 是運行時類型識別的英文縮寫,C++ 本身提供了運行時類型檢查的運算符 dynamic_cast 和 typeid,然而 dynamic_cast 的效率其實并不理想,需要犧牲一定性能。本項目將手動實現一個高性能 RTTI 庫。
有句話是這樣說的:一件事,1000人想去做,100人開始做了,最終,只有1個人堅持到了最后。話雖沒有絕對,但想想看,今天確實是你生命中最年輕的一天啦,所以,想要做的事,勇敢撿起來做吧!祝你學習順利。
其他教程推薦:
第一彈:超全Python學習資源整理(入門系列)
第二彈:超全Python學習資源整理(進階系列)
40個大數據學習資源
PHP學習資源整理:入門到進階全系列
8個程序員專用軟件/網站,個個是神器,第一個最驚喜…
Java進階之設計模式
Scala 開發教程
Hadoop部署及管理
RabbitMQ 消息隊列
Redis基礎教程
Shell腳本實現打字游戲
Python3 實現色情圖片識別
Python實現3D建模工具
總結
以上是生活随笔為你收集整理的一份C++学习资源整理,咬牙切齿地好用。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 40个大数据学习资源,个个是干货,最后7
- 下一篇: 我用C++复刻了这款上世纪最伟大的游戏