入門 C++,求介紹經驗?
01-05
本人現在大四,明年研究生。方向是圖像處理和模式識別。想學習c++做準備。求大神們推薦入門書籍,和學習方法。之前有c語言的基礎。
看《C++ Primer》——業界公認的C++入門好書。
1)一開始可以先跟著做習題,這樣可以熟悉語法。
2)大概看到80%了就可以嘗試寫些小程序或者小遊戲, 練練手,加深對語言的一些理解。又或者實現一些圖像處理的演算法都可以練手的。倒不一定非要用VS,如果你喜歡Linux,vim+gcc也沒問題,工具不是重點,區別在於坑多坑少而已。
3)看看lz是演算法方向還是工程方向吧,如果工程方向,就參考下 @vczh的blog汲取些靈感吧,他大概會荼毒你去造輪子之類的。如果是演算法,嗯……保證一個演算法的流程符合預期和output的正確性是非常重要的,建議題主多掌握些代碼測試的技巧,這樣起碼能test你實現的演算法對不對。PS:其實網路上對C++很有造詣的人應該還是很多的,不是黑 @vczh,但只看他一個人的blog或者只聽信他的言論也是不好的。他在知乎上的一些圈子裡很受歡迎,但造成偶像崇拜就不好了。多去搜索下文章,看看大牛們的blog,很快上手的。無語,答案看的太多都背會了。
替 @vczh 輪子哥回答你:VS 《c++ primer》
編程是一門手工藝。需要不斷的練習。切記不用總報著只學習的心態。去找一個簡單項目來練習。比如
- 下載整個博客的所有文章。
- 將一段文字,發送到指定郵箱地址。
- 統計出指定目錄下所有cpp代碼的行數,還有去掉注釋和空行的代碼行數。
- 統計出一本英文書籍各個單詞或者字母出現的頻率。
- 分析指定文件格式的結構。比如zip文件,exe文件,或者swf文件。
你找出一個項目,全心全意去完成它,這樣自然而然很多東西需要解決,就會接觸並且學到很多編程知識。最開始的時候,可以先不用接觸界面編程,界面編程是個大坑,會耗費很多時間。假如覺得整天對著黑乎乎的窗口無意思,可以將結果輸出成圖片或者網頁,這樣可以更直觀地看到結果。
《C++ Primer》《Thinking in C++》《Effective C++》系列《STL》...按順序閱讀
《C++程序設計語言》C++之父寫的,會告訴你C++這門語言該怎麼用,還有他本人對這門語言的思考
《C++ Primer》事無巨細的講解能讓你了解幾乎全部C++細節《C++高級編程》雖然有高級兩個字,其實就是個入門書,個人覺得這本書拿來入門不錯後兩本最新中文版都介紹了C++11標準既然是研究生,圖形處理方面的,那就項目導向嘛。
邊用C++庫OpenCV寫寫項目,然後回過頭來看看書,互為補充。
-------反正我是用《Windows核心編程》入門的C語言1 學習面向對象和基本的stl容器和基本的泛型編程
2 看google的C++ coding style ,你就會知道那些特性是業界常用,那些是奇技淫巧
3 遵循這個style寫幾個圖像處理模式識別的項目,邊寫邊學然後時間充裕的話可以看看effective C++之類的書。手機碼字不詳寫了如果沒有基礎的話,建議看C++ Primer Plus,相對容易一些。做每章後面的習題。一定要給自己一個時間限制。
然後可以學學孫鑫的VC++系列視頻,在看的過程中注意通過MFC的設計來感受面向對象的思想。雖然MFC的框架飽受詬病,但是我個人覺得還是非常好的。入門之後,可以自己試著寫一些簡單的小應用程序。如果覺得MFC不錯,想深入的挖一挖,可以接下來讀侯捷的《深入淺出MFC》。接下來建議開始接觸標準庫(STL),或者boost庫,想深入挖掘的話,再推薦侯捷的一本《STL源碼剖析》。其實我覺得像樓上幾位朋友建議的effective C++、Applied C++這種書更適合在這一階段看。再後面我覺得題主就應該知道怎麼學了。如果有語言基礎,只是為了做項目才學的話,其實隨便找一本主流的C++教材邊用邊查就足夠。為啥沒有推薦《Accelerated C++》+《Mastering OpenCV with Practical Computer Vision Projects 》
我的順序,隨便一本C++國內的教科書(雖然有點坑,但個人覺得挺有必要的),然後c++primer,think in c++這兩本必讀的,然後effective c++,more effective C++,effective stl。估計你研究不完這幾本。
完美C++感覺還是不錯的,主體思想圍繞著面向對象編程,難度也不高。C++ primer初學可能太複雜了。然後再看C++ primer,可能會好些
如果做模式識別,還是考慮一下python吧,好多包的。。。
C++學習曲線較大,個人認為一開始就看那些所謂的經典會有雲里霧裡的感覺,建議從學習C++的一些庫(比如boost)開始,然後利用這些庫實現一些實用的程序,等達到一定編碼量之後再看這些著作,此時也才會對其內容深有感觸,進而達到質的飛躍。
給你個建議吧。先看OOD啟示錄,然後直接上C++ Primer接著Applied C++,這本書就是講的圖像處理再然後Effective C++,STL這些自然不用說,看完這些,你應該能明白哪些書應該看了
推薦閱讀:
※計算機視覺有哪些不錯的博客可以推薦?
※怎樣理解結構張量?
※圖像分割領域常見的loss fuction有哪一些?
※如何使用js獲取圖片像素矩陣?
※圖像上的頻率指的是什麼?