马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include "iostream"
using std::endl;
using std::cout;
using std::cin;
template <typename T,typename T2>
void myIntSort(T* arr, T2 len) //问题1:int* arr,int len 为啥这里要写T 和 T2,直接一个T 不行吗 myIntSort(T* arr,T len)?
{
T2 tmp = 0;
for (T2 i = 0; i < len; i++)
{
for (T2 j = i + 1; j < len; j++)
{
if (arr[i] > arr[j])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
template <typename T,typename T2>
void printS(T* arr,T2 len)
{
for (T2 i = 0; i < len; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
template <typename T,typename T2>
void myStringSort(T* arr, int size)
{
T tmp = ' ';
for (T2 i = 0; i < size; i++)
{
for (T2 j = i + 1; j < size; j++)
{
if (arr[i] > arr[j])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
void main()
{
{
int arr[] = { 22,11,5,65,77,12,99 };
int len = sizeof(arr) / sizeof(*arr);
myIntSort<int,int>(arr, len);
printS<int,int>(arr, len);
}
{
char buf[] = "afjjonbnd111222mlsng";
int size = strlen(buf);
myStringSort<char,int>(buf, size);
printS<char, int>(buf, size);
}
system("pause");
}
这个问题在main函数中已经解答了。如果你确实是只要使用int数组,那一个T就足够了。但数组类型用泛型代替,可以允许其他类型的数组来使用此模板。比如main函数中的char数组
|