swap函数_template--函数模板

9b24cf26a85c766437e4ad25447206c7.png

template是C++里面的关键字

  • 1-在哪用?

还是接着上次的swap函数入手:

一叉树:从C语言到C++​zhuanlan.zhihu.com

现在想交换的是两个int变量和两个double变量:

using namespace std;
int main(){
	int a=10,b=-1;
	double c=3.14,d=5.20;
	swap1(a,b);
	cout<<a<<"t"<<b<<endl;
	swap2(c,d);
	cout<<c<<" t"<<d<<endl;
	return 0;
}

那就要变两个swap函数:

void swap1(int &a,int &b){
	int temp;
	temp=a;
	a=b;
	b=temp;
}
void swap2(double &a,double &b){
	double temp;
	temp=a;
	a=b;
	b=temp;
}

这两个函数除了参数类型不一样,其他都是一个模子刻出来的。

template就可以把这两个函数抽象出一个模板,要用哪个编译器就生成哪个

  • 2-怎么用?
template <class类型参数1,class类型参数2...> 返回值类型 模板名(形参表){ 函数体 };
template <class T>
void Swap(T &a,T &b){
	T temp;
	temp=a;
	a=b;
	b=temp;
}
注意:Swap的S大写,因为可能有库函数重名引起错误;

完整代码+运行截图:

#include<iostream> 
using namespace std;
template <class T>
void Swap(T &a,T &b){
	T temp;
	temp=a;
	a=b;
	b=temp;
}
int main(){
	int a=10,b=-1;
	double c=3.14,d=5.20;
	Swap(a,b);
	cout<<a<<"t"<<b<<endl;
	Swap(c,d);
	cout<<c<<" t"<<d<<endl;
	return 0;
}

06b45260b9e54a60d14499b63535b2ee.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值