企业自助建站系统,wordpress免费购物,响应式网站优点,自开发购物网站1、函数模板和普通函数区别
//普通函数可以进行自动类型转换#xff0c;
//函数模板必须精确类型匹配;
//函数模板可以被重载;c优先考虑普通函数;#includeiostream
using namespace std;
//函数模板--产生模板函数--调用函数
templateclass T
T MyAd… 1、函数模板和普通函数区别
//普通函数可以进行自动类型转换
//函数模板必须精确类型匹配;
//函数模板可以被重载;c优先考虑普通函数;#includeiostream
using namespace std;
//函数模板--产生模板函数--调用函数
templateclass T
T MyAdd(T a, T b)
{cout 调用函数模板 endl;return a b;
}
void MyAdd(int a, int b)
{cout 调用函数 endl;
}
int main()
{int a 10, b 20;MyAdd(a, b); double da 1.12, db 1.14;MyAdd(da, db); MyAdd(2, A);return 0;
}
运行结果: 2、函数模板机制 #includeiostream
using namespace std;
//函数模板--产生模板函数--调用函数
templateclass T
T MyAdd(T a, T b)
{return a b;
}
int main()
{int a 10, b 20;MyAdd(a, b); //产生MyAdd(int a,int b)函数并调用double da 1.12, db 1.14;MyAdd(da,db); //产生MyAdd(double a,double b)函数并调用MyAdd(a, a); //直接调用第一次产生的MyAdd(int a,int b)函数return 0;
}
3、函数模板应用-int类型和char类型排序 #includeiostream
using namespace std;
//对char类型和Int类型数组进行排序
//void PrintArray(int *arr, int len)
//{
// for (int i 0; i len; i)
// {
// cout arr[i] ;
// }
// cout endl;
//}
templateclass T
void PrintArray(T *arr, int len)
{for (int i 0; i len; i){cout arr[i] ;}cout endl;
}
void MySwap(int a, int b)
{int temp a;a b;b temp;
}//冒泡排序
void MySort(int* arr, int len)
{for (int i 0; i len; i){for (int j 0 ;j len-i-1; j){if (arr[j] arr[j1])MySwap(arr[j], arr[j1]);}}
}
//选择排序
//void MySort1(int* arr, int len)
//{
// for (int i 0; i len; i)
// {
// for (int j i1; j len; j)
// {
// if (arr[i] arr[j])
// {
// int temp arr[i];
// arr[i] arr[j];
// arr[j] temp;
// }
// }
// }
//}
templateclass T
void MySort1(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(void)
{//数组int arr[] { 2,6,1,8,9,2 };//数组长度int len sizeof(arr) / sizeof(int);cout 排序前;PrintArray(arr, len);MySort1(arr, len);cout 排序后;PrintArray(arr, len);char chArr[] { a,c,f,b,e };int lench sizeof(chArr) / sizeof(char); cout 排序前;PrintArray(chArr, lench); MySort1(chArr, lench);cout 排序后;PrintArray(chArr, lench);return 0;
}