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