C++語言的學習

結合 C++ 的知識圖譜,對 C++ 語言的學習,建議順序是這樣的:
基礎語言
類與面向對象
輸入輸出
字符串處理(類庫和正則表達式)
容器類庫
泛型算法
多線程
原子操作
大概過一下知識點,具體可以參考知識圖譜。孟巖有一篇名爲“快速掌握一個語言最常用的50%”的文章,有很強的參考意義,值得一讀。對於 C++ 語言來講,快速熟悉1、2、3、4、5這幾部分,就可以動手做一些好玩的小程序了。

基礎語言

這部分要了解 C++ 語言的基本數據類型、比如 int 、 char 、 bool 、 unsigned int 、 long 、 float 、 double 、 、 long long 、 enum 、 union 等等。能理解指針、引用等概念。
掌握基本的編程語法,比如表達式、運算符、函數等。關於函數,多說兩句,C++ 裏有函數對象,在標準庫裏廣泛應用,需要了解;另外 C++11 支持 lambda 表達式(匿名函數),威力強大,建議學習。不過這兩點可以稍往後放放。
主要的語言結構,比如 if-else 、 for 、 switch-case 、 while 、 do-while等。

如果你想學習C++可以來這個羣,首先是三三零,中間是八五九,最後是七六六,裏面有大量的學習資料


類與面向對象

瞭解 class 的概念,瞭解繼承、虛函數、重載、重寫、多態、純虛函數、多重繼承等概念,它們是面向對象編程在語言層面的基礎。
面向對象更重要的是思想,很多 C 系程序員一直都在用類來寫過程式程序。

輸入輸出

要做編程練習,瞭解基本的輸入輸出操作是必須的。
C++ 裏輸入輸出分 C 和 C++ 兩部分。C 風格的 printf 系列函數、 FILE 、 fopen 、 fread 、 fwrite 等等或 C++ 風格的 istream 、 ostream 、 iostream 、 ifstream 、 ofstream 、 fstream等都可以完成輸入輸出操作 。

字符串處理

字符串處理是我們編程時使用頻率最高的,C++ 裏有 C 風格的字符串庫,比如 strcmp 、 strcpy 、 strstr 、 strchr 等函數,也有更爲方便和智能的字符串類,如 string 、 wstring 等,看看 API ,練習一下就可以掌握。
C++11 爲了更方便字符串處理,提供了正則表達式類庫,比如 regex 類,regex_match、regex_search、regex_replace等方法,以及 regex_iterator 這個迭代器類。用起來非常方便,功能也很強大。

容器類庫

常見的容器,如 vector 、 list 、 map 、 set 、queue 、 stack 、 deque 、 multimap 、 multiset 等,基本可以滿足日常的開發需要。C++11 引入了定長數組 array ,具有 C 風格數據的特性,更有 C++ 的便利操作;還有 unordered_set 、 unordered_map 等新的非排序容器,可以適應不需要排序的場景。

泛型編程

C++ 裏的泛型算法庫,用起來非常方便,比如 find 、 find_if 、 count 、 count_if 、search 、search_n 、 copy 、 copy_n 、 copy_if 、 sort 、 partial_sort 、 binary_search 、 stable_sort 等等,功能非常強大。這些算法多數基於容器和迭代器,忽略具體數據類型,使用起來稍稍有些難度,不過掌握了容器、模板、迭代器等內容後,就可以很快應用起來。

多線程和原子操作

這些都是 C++11 引入的類庫,從此以後,C++語言本身有了併發編程的能力,非常酷。一個 thread 類,三五行代碼,就可以啓動一個線程,簡單的使用 mutex 和 lock_guard ,就可以完成線程間的資源同步與保護,棒極了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章