为了让编译器区分事普通函数还是模板函数,使用template <calss T>/tamlate <typename T>来告诉编译器我接下来写的函数是模板函数。
例如:
template <class T>;
void Myswap(T& a, T& b){
T temp = a;
a = b;
b = temp;
}
函数模板案例:
#include<iostream>
using namespace std;
//对char类型 int类型的数组进行排序
template<class T>
void PrintArry(T * arr,int len) {
for (int i = 0; i < len; i++) {
cout << arr[i] << endl;
}
cout << endl;
}
//排序
template<class T>
void MySort(T* arr, int len) {
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
//从大到小
if (arr[i] < arr[j]) {
T temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int aar[] = { 2,3,4,8,1,0 };
//数组长度
int len = sizeof(aar) / sizeof(aar[0]);
cout << "排序之前" << endl;
PrintArry(aar, len);
MySort(aar, len);
cout << "排序之后" << endl;
PrintArry(aar, len);
char chArr[] = { 'a','b','v','g' };
int len1 = sizeof(chArr) / sizeof(char);
cout << "排序之前" << endl;
PrintArry(chArr, len1);
MySort(chArr, len);
cout << "排序之后" << endl;
PrintArry(chArr,len);
return 0;
}
网友评论