C++ 模板template(一)
基本语法:template <class T>基础测试代码:#include <iostream>using namespace std;template <class T>void mySwap(T &a,T &b){T temp=a;a=b;b=temp;}template <class T>//每次使用前得声明void sort
·
基本语法:
template <class T>
调用时有两种方式:
1.指定类型
2.自我推断
#include <iostream>
using namespace std;
template <class T> //T为通用数据类型
void SwapNums(T &a,T &b){
T temp=a;
a=b;
b=temp;
}
void test01(){
int a=10;
int b=20;
cout<<a<<" "<<b<<endl;
SwapNums<int>(a,b); //1.指定类型
cout<<a<<" "<<b<<endl;
double c=1.1;
double d=2.2;
cout<<c<<" "<<d<<endl;
SwapNums(c,d); //2.自我推断
cout<<c<<" "<<d<<endl;
}
int main() {
test01();
return 0;
}
基础测试代码:
#include <iostream>
using namespace std;
template <class T>
void mySwap(T &a,T &b){
T temp=a;
a=b;
b=temp;
}
template <class T> //每次使用前得声明
void sortArr(T arr[],int len) //降序排列
{
for (int i = 0; i < len ; ++i) {
int max=i; //认定最大值的下标
for (int j = i+1; j < len; ++j) {
if(arr[max]<arr[j]){
max=j; //更新最大值下标
}
}
if (max!=i) {
mySwap(arr[max],arr[i]);
}
}
}
template <class T>
void myPrint(T arr[],int len){
for (int i = 0; i < len; ++i) {
cout<<arr[i];
}
cout<<endl;
}
void test01(){
char charArr[]="ahjflsjfw";
int len=sizeof(charArr)/ sizeof(char);
sortArr(charArr,len);
myPrint(charArr,len);
}
//模板作用,使用不用数据类型
void test02(){
int intArr[]={5,9,1,4,3,6,7};
int len= sizeof(intArr)/ sizeof(int);
sortArr(intArr,len);
myPrint(intArr,len);
}
int main() {
test01();
test02();
return 0;
}
更多推荐
已为社区贡献1条内容
所有评论(0)