實驗8 模板

2021-06-14 09:55:12 字數 1069 閱讀 3596

(1)  理解函式模板、類模板,應用模板函式、模板類。

2. 實驗內容

(1)用函式模板方式設計乙個函式模板sort,採用直接插入排序方式對資料進行排序,並對整數序列和字串行進行排序。

template < class t>

void sort(t a, int n)

#includeusing namespace std;

template < class t>

void sort(t a, int n)

templatevoid stack::pop(t& x)

呼叫機制:編譯器根據實參的型別來例項化函式模板引數型別.

(2)什麼是類模板,如何例項化類模板?

類模板允許使用者為類定義一種模式,使得類中的某些成員資料、某些成員函式的引數、某些成員函式的返回值,能夠取任意型別(包括系統預定義的和使用者自定義的)。定義類模板的語法是:  

template

class 類模板名

;

類模板的例項化必須由程式設計師在程式中顯式地指定,例項化的一般形式是:

類模板名 《模板引數1,模板引數2,…> 物件名;

(3)順序容器包括哪些具體的容器型別?各自的特點是什麼?

順序容器是物件的線性集合,所有物件都是同一型別。stl中有三種基本順序容器:向量(vector)、線性表(list)和雙向佇列(deque)。

向量vector是乙個多功能的、能夠存放各種型別物件的類模板,vector 中的元素是連續儲存的,其行為和陣列類似。

list容器相當於資料結構中的鍊錶,與vector類似,提供了begin,end,pop_back,push_back,clear,empty,erase,front,back,insert,size 等公有成員函式。但list 沒有過載下標運算子「」,從而不支援隨機訪問(random access)。

雙向佇列deque是一種可以從雙向進行操作的佇列(而對一般佇列進行操作時,則只能從一端進行:通過push 往佇列尾部增添元素,通過pop從佇列首部刪取元素)。

實驗8 模板

實驗目的和要求 1.能夠使用c 模板機制定義過載函式。2.能夠例項化及使用模板函式。3.能夠例項化和使用模板類。4.應用標準c 模板庫 stl 通用演算法和函式物件實現查詢和排序。實驗內容 1.分析並除錯下列程式,了解函式模板的作用。sy8 1.cpp includeusing namespace ...

實驗8 模板

實驗目的和要求 1.能夠使用c 模板機制定義過載函式。2.能夠例項化及使用模板函式。3.能夠例項化和使用模板類。4.應用標準c 模板庫 stl 通用演算法和函式物件實現查詢和排序。實驗內容 1.分析並除錯下列程式,了解函式模板的作用。html view plain copy sy8 1.cpp in...

實驗8 模板(P292)

實驗目的和要求 1.能夠使用c 模板機制定義過載函式。2.能夠例項化及使用模板函式。3.能夠例項化和使用模板類。4.應用標準c 模板庫 stl 通用演算法和函式物件實現查詢和排序。實驗內容 1.分析並除錯下列程式,了解函式模板的使用。sy8 1.cpp includeusing namespace ...