1. 程式人生 > >C++知識點(九)模板與群體資料

C++知識點(九)模板與群體資料

類模板->容器,函式模板->演算法

1.函式模板:

使用情況:演算法邏輯一致,資料型別不一致,需要寫多個過載函式,帶來資料冗餘和更改時的便利

template <typename T>  

編譯器會置換T,但需要注意運算子是否過載

2.類模板:

template <typename T>   class類名{類成員宣告}

3.線性群體的概念

多個數據元素的群體

線性群體:有一定規律的群體

直接訪問、順序訪問、索引訪問

4.直接訪問的線性群體:通用陣列類:動態陣列類(在STL中為vector)

  • 為甚麼有的函式返回為引用: 因為一個函式返回值為一個物件的值,那就是右值,不能成為左值,若返回值為引用,通過引用可以改變物件的值,因此為左值
  • 右值就是一個臨時變數(後面將詳細的解釋),只有臨時地址空間,左值有其地址空間

5.順序訪問的線性群體:連結串列類

結點:資料,指向下一個節點的指標

便於插入刪除

6.棧類模板:後進先出

7.佇列類:先進先出

迴圈佇列

8.排序:比較大小、調整元素在序列中的位置

插入排序:

選擇排序:在待排序序列中,選擇最小的元素交換

交換排序:(氣泡排序)兩兩比較,若不滿足次序,則交換,直到全部滿足次序

9.查詢:

順序查詢:沒有排過序的查詢

二分查詢:已排序的序列,先找中點位置,比較中點元素跟待找元素的大小