實驗 八 模板

2021-08-20 13:13:54 字數 2284 閱讀 8229

實驗目的和要求

1、能夠使用c++模板機制定義過載函式。

2、能夠例項化及使用模板函式。

3、能夠例項化和使用模板類。

4、應用標準c++模板庫(stl)通用演算法和函式物件實現查詢和排序。

實驗內容

1.分析並除錯下列程式,了解函式模板的使用。

//sy8_1.cpp

#includeusing namespace std;

template t max(t a,t b)

int max(int a,int b)

int main()

float max(float a,float b)

如果程式中有max('6','5');呼叫時會出現什麼錯誤?為什麼?上機除錯並分析原因。

定義函式過載後程式如下:

#includeusing namespace std;

template t max(t a,t b)

int max(int a,int b)

float max(float a,float b)

int main()

char* max(char *a,char *b)

int main( )

void dosort(bool up = true)

}else//降序}}

}}private:

t *stores;

};int main()

; mysortmysort(nums);

mysort.dosort(true);//公升序

for(int i = 0; i < 10; i++)

printf("%d ", nums[i]);

printf("\n");

//float

float nums1[10] = ;

mysortmysort1(nums1);

mysort1.dosort(false);

for(int i = 0; i < 10; i++)

printf("%0.2f ", nums1[i]);

printf("\n");

// char

char chars[10] = ;

mysortmysort2(chars);

mysort2.dosort();

for(int i = 0; i < 10; i++)

printf("%c ", chars[i]);

printf("\n");

return 0;

}

程式執行結果如下:

4.宣告乙個整型陣列,使用c++標準模板庫(stl)中的查詢演算法find()進行資料的查詢,然後應用排序演算法sort()對資料進行公升序和降序排序。(sy8_4.cpp)

編寫程式如下:

分析與討論

1.結合實驗內容中第1題和第2題,說明編譯器匹配函式的過程。

2.結合實驗內容中第3題和第4題,比較利用自定義類模板排序和使用c++標準模板庫排序的過程。

實驗總結:

通過本次實驗,我們首先要知道什麼是模板,模板是一種引數化多型性的工具,模板可以分為函式模板和類模板,帶類屬引數的函式稱為函式模板,帶類屬引數的類稱為類模板。我們要理解如何使用c++模板機制定義過載函式以及例項化及使用模板函式和使用模板類。熟悉標準c++模板庫(stl)通用演算法和函式物件實現查詢和排序。

實驗八 模板

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

實驗八 模板

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

實驗八 模板

sy8 1.cpp includeusing namespace std template t max t a,t b int max int a,int b int main int max int a,int b float max float a,float b int main char m...