C Primer知識點整理

2021-09-26 08:02:12 字數 3116 閱讀 4571

c++ primer知識點整理

c++必須有乙個main函式,return0 返回0表示程式執行完畢。定義函式必須指定4個元素:返回型別、函式名、圓括號內形參表和函式體。cin(讀see-in)輸入,cout(讀see-out)輸出,預處理命令會告訴編譯器要做一些事情。endl稱為操縱符,具有輸出換行的效果。c++中通過定義類來定義自己的資料結構。

第一部分 基本語言

型別是所有程式的基礎。c++的幾種基本型別:整形、浮點型、字元型等。void沒有對應的值,以0開頭,八進位制,以0x開頭,16進製制。變數提供了程式可以操作的有名字的儲存區。變數是左值(可在等號左邊或右邊),數字是右值(只能在右邊)。c++大多數作用域用花括號來界定。定義const物件,它把乙個物件轉換成乙個常量,因為常量的值在定義後不能修改,所以定義的時候必須初始化。const物件預設為檔案的區域性變數,只存在那個檔案中,不能被其他檔案訪問。引用,就是物件的另乙個名字,const引用是指向const物件的引用。typedef名字,可以用來定義型別的同義詞。列舉,不但定義了整數常量集,而且把他們匯聚成組。關鍵字是enum,列舉成員是常量,每個列舉都定義一種唯一的型別。類型別,每個類都定義了乙個介面和乙個實現。類以關鍵字class開始,其後是該類的名字識別符號。類體位於花括號裡面,花括號後面必須跟個分號。 類的資料成員、訪問標號等。struct關鍵字,它也可以定義類型別,但成員都是public的。

標準庫型別一旦用了using宣告,我們就可以直接引用名字,而不需要再引用該名字的命名空間。string型別支援長度可變的字串。vector是乙個類模板,用於管理同一型別的物件集合,迭代器實現了對儲存與容器中物件的間接訪問。迭代器可用於訪問和遍歷string型別和vector型別的元素。

陣列和指標與vector類似,陣列也能儲存某種型別的一組物件;而他們的區別在與陣列的長度是固定的。陣列一經建立,就不能新增新的元素。指標像迭代器一樣,用於遍歷和檢查陣列中的元素。指標用於指向物件,具體來說指標儲存著另一物件的位址。多維陣列,如果陣列的元素又是陣列稱為多維陣列。

表示式

語句c++提供了一組控制流,允許有條件的或者重複執行某部分功能。if和switch提供條件分支結構。for、while、do while則支援重複執行的功能。continue終止當次迴圈,break退出乙個迴圈或switch語句;goto將控制跳到某個標號語句;default標號,相當於else字句的功能。while語句,每次迴圈都將該變數的初始值轉換為bool型別。

函式函式由函式名以及一組運算元型別唯一的表示。函式的運算元也叫形參。return語句用於結束當前正在執行的函式。遞迴函式,直接或間接的呼叫自己的函式,舉例:數n的階乘,遞迴必須要有乙個終止條件。內聯函式,(編譯器在呼叫點直接把函式**展開)避免函式呼叫的開銷,把內聯函式放入標頭檔案。類的成員函式,每個成員函式都有乙個額外的、隱含的形參this。this指標的作用,當你進入乙個房子後,你可以看見桌子、椅子、地板等,但是房子你是看不到全貌了。對於乙個類的例項來說,你可以看到它的成員函式、成員變數,但是例項本身呢?this是乙個指標,它時時刻刻指向你這個例項本身。建構函式,通過建構函式來初始化類的資料成員,建構函式是特殊的成員函,它和類同名沒有返回型別。

標準io庫istream,提供輸入操作;ostream,提供輸出操作;cin,讀入標準輸入的istream物件;cout,寫到標準輸出的ostream物件。cerr,輸出標準錯誤的ostream物件。

第二部分 容器和演算法

順序容器,順序容器的元素按其位置儲存和訪問。vector、list(高效的插入和刪除不支援隨機訪問)、和deque(雙端佇列),還提供了三種容器介面卡,動過定義新的操作介面,來適應基礎的容器型別。順序容器介面卡包括stack、queue、priority-queue(有優先順序管理的佇列)。選擇容器的提示,若程式要求隨機訪問,則應使用vector和deque容器。 如果程式必須在容器中間位置插入或刪除元素,應採用list。 如果程式不是在元素中間位置插入或刪除,而是在容器首部或尾部插入和刪除則用deque。string型別容器介面卡,優先順序佇列允許使用者為佇列中儲存的元素設定優先順序。

關聯容器關聯容器和順序容器的本質差別,關聯容器通過鍵(key)儲存和讀取元素,而順序容器則通過元素在容器中的位置順序儲存和訪問元素。兩個基本的關聯容器mapsetmap是鍵-值對的集合,可以理解為關聯陣列:可使用鍵作為下標來獲取乙個值。 map 是鍵-值對的集合,好比以人名為鍵的位址和**號碼。相反的,set容器是單純的鍵的集合。multimap和multiset允許乙個鍵對應多個例項。

泛型演算法

第三部分 類和資料抽象

定義了資料成員和函式成員。資料成員用於儲存與該類型別 的物件相關聯的狀態,而函式成員則負責執行賦予資料意義的操作。簡單來說類就是定義了乙個新的型別和乙個新的作用域。建構函式是特殊的成員函式,只要建立類型別的新物件,都要執行建構函式。

複製控制過載操作符與轉換

第四部分 物件導向程式設計和泛函程式設計

繼承,子類繼承父類。

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 狀態控制碼 code,control flag 標誌位欄位 u a p r s f 佔6位元。各 位元的含義如下 ack 確認位元 acknowledge 只有當ack 1時確認號字段才有效,代表這個封包為確認封包。當ack 0時,確認號無效。psh push function 若為1時,代表要...