入門 C++,求介紹經驗?

本人現在大四,明年研究生。方向是圖像處理和模式識別。想學習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》


編程是一門手工藝。需要不斷的練習。切記不用總報著只學習的心態。去找一個簡單項目來練習。比如

  1. 下載整個博客的所有文章。

  2. 將一段文字,發送到指定郵箱地址。
  3. 統計出指定目錄下所有cpp代碼的行數,還有去掉注釋和空行的代碼行數。
  4. 統計出一本英文書籍各個單詞或者字母出現的頻率。
  5. 分析指定文件格式的結構。比如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獲取圖片像素矩陣?
圖像上的頻率指的是什麼?

TAG:圖像處理 | 模式識別 | C |