基本模板语法
即template语句的使用
泛型编程
优点:可以没有任何数据类型
根据模板生成类型处理方案
只需使用占位符(T)来表示类型
可以用typename 和 class 代表不确定的数据类型 在这里二者没有区别
e.g
类模板:
template <typename T>
class Vector{
private:
public:
...dosomething
};
函数模板:
template<class T>
void foo(T param){
dosomething
}
函数模板的使用示例
//实现数据类型交换
#include <bits/stdc++.h>
using namespace std;
template <typename T>
void swap1(T &a,T &b){
T tmp = a;
a=b;
b=tmp;
}
int main(){
int i=100;
int j=200;
cout<<i<<" "<<j<<endl;
swap1(i,j);
cout<<i<<" "<<j<<endl;
cout<<endl;
string a="csdn";
string b="sxh705";
cout<<a<<" "<<b<<endl;
swap1(a,b);
cout<<a<<" "<<b<<endl;
}
类模板的使用示例
//实现数据类型交换
#include <bits/stdc++.h>
using namespace std;
template <typename T>
void swap1(T &a,T &b){
T tmp = a;
a=b;
b=tmp;
}
int main(){
int i=100;
int j=200;
cout<<i<<" "<<j<<endl;
swap1(i,j);
cout<<i<<" "<<j<<endl;
cout<<endl;
string a="csdn";
string b="sxh705";
cout<<a<<" "<<b<<endl;
swap1(a,b);
cout<<a<<" "<<b<<endl;
}