實驗8 模板(P292)

2021-08-20 09:33:15 字數 2363 閱讀 6517

實驗目的和要求

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)

編寫程式如下:

#include#include#includeusing namespace std;

bool largethan(int x,int y)

int main()

; size_t arrsize=7;

int searchvalue=5;

vectorvec(a,a+arrsize);

vector::iterator it=find(vec.begin(),vec.end(),searchvalue);

if(it==vec.end())

cout<

cout<

cout<

程式輸出結果如下:

分析與討論

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

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

實驗總結:

在本次實驗中我學會了使用c++模板機制定義過載函式和模板函式及模板類的使用。函式模板的過載有多種方式,可以定義同名的函式模板,提供不同的引數和實現,也可以用其他非模板函式過載。要注意的是在編譯的過程中,編譯器不會為沒有用到的任何型別生成相應的模板函式,並且無論為一種型別使用了多少次函式模板,都只為該型別生成乙個模板函式。

實驗8 模板

1 理解函式模板 類模板,應用模板函式 模板類。2.實驗內容 1 用函式模板方式設計乙個函式模板sort,採用直接插入排序方式對資料進行排序,並對整數序列和字串行進行排序。template class t void sort t a,int n includeusing namespace std ...

實驗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...