|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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数组
|
|