只掌握 C 基礎可以直接學 C++ 嗎?

本科機械,只學了c語言基礎(本身課程要求也不高),研究生準備搞機器視覺,聽說要用cpp,所以準備提前自學一下,那麼需要再把c語言基礎再打牢些再學cpp嗎?因為現在是大三,開學大四,所以即便花時間鞏固一下c應該也是有時間的,那麼更好的選擇是直接開始學cpp還是再鞏固下c呢?

如果對我之後在這方面的學習可以分享一些學習建議就更好了~謝謝~


可以直接學。但若是機器視覺,考慮一下數學基礎是否需要補足,C++的不足會更容易補足。


不需要,現在的C++路子已經和學C差的比較遠了。


可以。

本科自動化,本科時自學過一些C基礎。

研究生做計算機視覺和機器學習,從使用OpenCV開始,直接就用CPP了。

從做中學,learning by doing,上手很快的。

C與CPP有相通之處,你可以加強C的基礎啊,對熟悉CPP也有幫助。

做機器視覺,語言畢竟只是工具,更多的是對所做領域的流行技術和前沿的把握。這方面就是看你的數學和專業知識啦。

數學主要是線性代數,微積分,統計學和優化理論。

專業知識可以讀richard的computer vision: algorithms and applications.


沒有c基礎都可以學cpp。


搞機器視覺可以一邊看opencv源碼一邊學c++了,(c++你看半本書都差不多了。。。後頭的opencv整個源碼都出現不了幾次)語言只是工具,思想比工具重要,如果你以後主要鑽研演算法,搞不好得主攻matlab什麼的(其實那個更簡單)

一種編程語言其實相對計算機圖形學,計算機視覺學簡單的多


首先,咱們學校學了一年c++,之後才學的c。這名字雖然有個++運算符,但並不是進階或上下級關係。沒有先後順序。

其次C、C++、Java這些語法相似的語言,我們都是學期初花一個星期熟悉熟悉,之後學期該幹嘛就幹嘛。有基礎的話入門新語言不難。編程重要的是演算法,語法多寫幾個作業就記得了。

學C++有個網站很好用:

http://www.cplusplus.com

想知道函數在哪個庫、有什麼用、要什麼參數類型、會怎樣返回結果?想知道每個庫有什麼函數、對象,包含什麼庫?一搜索就有詳細介紹。還有使用例子和輸出事例。除了是英文,不能要求更多。


那你說像我這樣第一門語言是C++的人怎麼辦……


同樓上,大一軍訓時開始自學C++(之前就看過一點操作系統存儲分配的知識),大二C語言大作業用dx7寫了個打坦克demo。

為啥會這樣,因為當時能找到的教材就C++的質和量都不錯唄。


我認為還是很有必要的。因為c留下的坑太多太多了。

比如成員函數的static和全局變數的static為啥意義不一樣?為啥static變數的定義不能用static?為啥static變數定義要放到cpp文件中?

為啥要用extern引用外部全局變數?為啥說我符號衝突?

include有什麼要求?為什麼link的時候會說我找不到符號?

為什麼我的編譯速度特別慢?

為什麼我用socket的時候總是讀取不到數據?因為你的vector沒有先分配內存啊!

這些都是c留下的坑,你不了解怎麼行。


建議把C基礎打牢,學好數據結構,再學C++或者其它語言。

個人經歷:

大學時,先學C,再學數據結構,再學的C++。當時學得也並不是很好,主要是學了之後沒什麼感覺,也沒用來做什麼項目。

後來實習時,空餘時間比較多,發現了github,就像發現了新大陸。第一次見有人用Linux+ncurses+C寫了一個貪吃蛇,我也跟著模仿寫了一個貪吃蛇,發現還可以這麼玩,便一發不可收拾,陸續用Linux+ncurses+C這種形式按照自己的想法寫了掃雷、俄羅斯方塊、坦克大戰,在實現的過程中,對C、數據結構、演算法有了更進一步的認識。再回過頭看,這些項目可能並沒有什麼用,但是這些經歷讓我有了底氣。

基於這些基礎,後來在項目過程中,我比較順利地用Java實現了自己原創的PinyinSearch演算法,再後來空餘時間比較多,又用C++實現了一遍。

現在覺得如果對數據結構和演算法比較熟悉,再掌握C/C++,再去學其它語言,那是比較容易的事。

其實語言只是工具。


別鞏固c了,c就三把斧,雖然會耍很牛逼,不過暫時也沒鞏固的必要了!

直接cpp!

擼演算法的話還要學下MATLAB或者Python吧

數學是很有必要,基礎肯定是線性代數了,然後統計,統計學習,概率論,隨機過程……

到最後幾乎就是在拼數學了!

還要信號處理或者圖像處理也是很重要的!


C++比起C主要引入OO和泛型(雖然C也能實現OO,但更多作為純過程式語言)。學了c是對學其他任何基於馮諾依曼命令式語言的都是很好的一個基礎,即有了從內存中獲取指令和數據依序執行這樣的概念,C++也不例外

嗯,我只說這是一個基礎,至於學好C++還需要下一翻功夫。如果計算機視覺很依賴C++,那就學吧,找本經典教材跟著課後習題編代碼就行

目前工作用c++,另外自學機器學習中,演算法實現用python。以我現在經驗來看,如果不是特定領域一定要用C++,那我會選擇學靜態語言C(主要同時學好數據結構,操作系統),動態語言python,另外再學一門函數式語言。

最後數學方法和思維對於深入編程實現以及架構設計本身借鑒的地方很多,學懂數學真的很重要


推薦閱讀:

如何評價ILSVRC2015?
如何理解CNN在CV與NLP領域運用的聯繫與區別?
計算機視覺的應用前景如何?可能有哪些不錯的應用?
如何ensemble多個神經網路?
如何自學平面設計專業的幾個軟體?

TAG:程序員 | C | 計算機視覺 | 機器視覺 | CC |