繼承、多型、封裝
首先是建立在繼承的基礎上,先有繼承才有多型
多型是指不同的子類在繼承父類後分別都重寫覆蓋了父類的方法
1.指標是乙個實體,引用僅是乙個別名
2.引用時無需引用(*),指標需要引用
3.引用只能在定義時初始化一次,之後不可變;指標可變 引用從一而終
4.引用沒有const 指標有const const指標不可變
5.引用不能為空,指標可以空
6.「sizof」引用得到的是所指變數的大小 指標得到的是指標本身的大小
7.指標和引用的自增(++)運算意義不一樣
不可被修改的常量 不能用於左值
stl總結
1.在儲存多個成員資訊時,編譯器會自動給struct多個成員分配儲存空間,struct 可以儲存多個成員資訊,而union每個成員會用同乙個儲存空間,只能儲存最後乙個成員的資訊。
2.都是由多個不同的資料型別成員組成,但在任何同一時刻,union只存放了乙個被先選中的成員,而結構體的所有成員都存在。
3.對於union的不同成員賦值,將會對其他成員重寫,原來成員的值就不存在了,而對於struct 的不同成員賦值 是互不影響的。
注:在很多地方需要對結構體的成員變數進行修改。只是部分成員變數,那麼就不能用聯合體union,因為union的所有成員變數佔乙個記憶體。eg:在鍊錶中對個別數值域進行賦值就必須用struct.
復合資料型別,如union,struct,class的對齊方式為成員中對齊方式最大的成員的對齊方式。
最簡單的乙個lambda表示式
int
main()
() ; //[ ]代表lambda表示式的開始,
//{}代表函式體,什麼都沒有,()代表呼叫函式
}
lambda表示式就是乙個函式(匿名函式),也就是沒有函式名的函式。
為什麼不需要函式名呢,因為我們直接(一次性的)用它,嵌入式的用它,不需要其他地方呼叫它。
lambda表示式也叫閉包,閉就是封閉的意思,就是其他地方都不用他,包就是函式。
lambda表示式其實就是乙個函式物件,他內部建立了乙個過載()操作符的類。
[ ]不捕獲任何變數
[&]以引用方式捕獲所有變數
[=]用值的方式捕獲所有變數(可能被編譯器優化為const &)
[=,&f]以引用捕獲f,但其餘變數都靠值捕獲
[&,f]以值捕獲f,但其餘變數都靠引用捕獲
[bar]以值的方式捕獲bar;不捕獲其它變數
[this]捕獲所在類的this指標
雜湊表最大的優點,就是把資料的儲存和查詢消耗的時間大大降低,利用空間換時間。
基本原理:為每個元素分類,方便查詢。
兩大特點:直接定址,解決衝突。
和使用者相關:hash函式,比較函式。
Knowledge 複習內容
前面都講的是知識表示和知識推理的內容,也就是人工智慧裡面的符號主義的學派 另乙個是連線主義 把腦袋中儲存的知識用符號表示,用什麼符號呢?邏輯的形式化語言來表示,我們講了兩個邏輯,乙個命題邏輯和一階謂詞邏輯,表式的範圍是不一樣,命題邏輯能夠表達能力小一些。兩套邏輯,講課思路如圖。每一種邏輯都會定義形式...
NOIP複習內容
考了幾天試,感覺noip的內容其實也挺雜的 主要還是以計數為主吧,容斥原理 組合數什麼的都要學好 概率期望是重點 斯特靈數 尤拉函式 擴充套件歐幾里得 其實我連逆元是什麼都不知道 線段樹 樹狀陣列比較常見,一定要學好 注意公式的化簡,然後還有一些單調資料結構。線段樹有空做一做gss系列吧 tarja...
今天的複習內容
第一題 看程式說答案 int a 10 int b 3 int c a b int d a b int e a b int f a b int g a b a 10 a 11 b 3 b 2 第二題 看程式說答案 int a 10 a 2 a a 2 12 a 3 a a 3 7 a 4 a a 4...