C 第2 5階段(模板,STL)

2021-10-17 12:20:24 字數 1104 閱讀 3361

1.模板(函式模板,類模板)

泛型程式設計思想,m/(物件導向思想) 模板 :提高復用性

函式模板:定義:typelate

呼叫:自動型別推導;顯式指定型別

作用:提高復用性,型別引數化

注意事項:自動推導必須推導出一致的資料型別t;模板需要確定t

普通函式:呼叫時可以發生自動型別轉換(隱式型別轉換)

函式模板:自動型別推導不會發生隱式型別轉換;顯示指定 可以

普通函式和函式模板的過載:

優先呼叫普通函式;通過空模板引數列表可以強制呼叫函式模板;

侷限性:對於類的模板需要重寫

類模板:定義 同函式模板typelate

類模板和函式模板的區別:類模板不能自動型別推導;

類模板中成員函式的建立時機:

普通模板中成員函式一開始建立;類模板成員函式呼叫時建立

類模板與繼承:子類繼承類模板父類時,子類繼承時要宣告t型別 (??難點)

類模板的類外實現:(難點)

類模板的分檔案編寫:在標頭檔案中的類模板編譯前不建立(宣告不實現)

解決方式:直接包含原始檔/宣告和實現寫在同乙個檔案hpp中(.h .cpp)

類模板與友元:全域性函式類內/類外實現 (引數模板化)

2.stl

標準函式庫:廣義分為 容器,演算法,迭代器

詳細分為六大元件:容器,演算法,迭代器,仿函式,介面卡,空間介面卡

容器:各種資料結構,存放資料:vector,list,map,deque,set

演算法:各種常用演算法:sort,find,copy,for_each等

迭代器:扮演容器和演算法的膠合劑

仿函式:類似函式,作為演算法的某種策略

容器:資料結構和容器型別

資料結構:陣列,鍊錶,樹,佇列,集合,對映表等

序列式容器:強調值的順序,一般來說值是固定的。

關聯式容器::二叉樹結構,沒有嚴格的物理上的順序關係。

演算法:algorithms

質變演算法:運算過程中更改區間內元素的內容 例:拷貝,替換,刪除

非質變演算法:運算過程中不會更改區間內元素的內容 例:查詢,計數,遍歷,尋值

迭代器:輸入/輸出/前向/雙向/隨機訪問 迭代器(一種訪問運算元據的方法)

200915階段一C 模板

二 上課沒有聽懂或者沒有理解的地方 三 當天學習的收穫 四 作業的思路 不會的地方 五 其他需要反饋的問題 建立乙個派生類物件,不指定,就走預設構造,使資料型別引數化 巨集定義 呼叫時不進行型別檢查 define maxnum a,b a b a b 函式模板不是函式,不可以直接呼叫 使用函式模板的...

關於第3階段英語學習

下週開始學習第三冊學習,應該把學習重點放在詞彙和語句積累。第三冊較前兩冊來說是乙個爬坡階段,難度會比較大。初步學習計畫如下 1,一周學習一課,共60課,大約花費1年3個月左右。我覺得時間不是問題,畢竟現在不是為了應試,關鍵是要每一課要紮實的過。學到東西才是目的。2,周一主要用於聽和寫上面,先聽2遍,...

C 標準模板庫STL

stl是標準c 庫的一部分。stl模板類為c 提供了完善的資料結構和演算法。stl的特點 型別引數化 即stl的 中可處理任意自定義型別的物件。泛型程式設計 generic programming 它以模板為基礎,弱化了 實體型別的差異,簡化了程式設計時問題抽象的模型,提供了更好的 封裝性和彈性。s...