C++知識點(九)模板與群體資料
阿新 • • 發佈:2019-01-09
類模板->容器,函式模板->演算法
1.函式模板:
使用情況:演算法邏輯一致,資料型別不一致,需要寫多個過載函式,帶來資料冗餘和更改時的便利
template <typename T>
編譯器會置換T,但需要注意運算子是否過載
2.類模板:
template <typename T> class類名{類成員宣告}
3.線性群體的概念
多個數據元素的群體
線性群體:有一定規律的群體
直接訪問、順序訪問、索引訪問
4.直接訪問的線性群體:通用陣列類:動態陣列類(在STL中為vector)
- 為甚麼有的函式返回為引用: 因為一個函式返回值為一個物件的值,那就是右值,不能成為左值,若返回值為引用,通過引用可以改變物件的值,因此為左值
- 右值就是一個臨時變數(後面將詳細的解釋),只有臨時地址空間,左值有其地址空間
5.順序訪問的線性群體:連結串列類
結點:資料,指向下一個節點的指標
便於插入刪除
6.棧類模板:後進先出
7.佇列類:先進先出
迴圈佇列
8.排序:比較大小、調整元素在序列中的位置
插入排序:
選擇排序:在待排序序列中,選擇最小的元素交換
交換排序:(氣泡排序)兩兩比較,若不滿足次序,則交換,直到全部滿足次序
9.查詢:
順序查詢:沒有排過序的查詢
二分查詢:已排序的序列,先找中點位置,比較中點元素跟待找元素的大小