小弟我只定义了一个交换数值的函数,但是可以交换所有类型,为什么还需要模板

我只定义了一个交换数值的函数,但是可以交换所有类型,为什么还需要模板?
只定义了一个swap,它交换int、float和double都没有任何问题,还要模板干什么?
void swap(int &rx,int &ry)
{
int temp=rx;
rx=ry;
ry=temp;
}

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

std::vector呢?
std::string呢?
再定义一个临时变量作中转的话,效率可就很低了。

很抱歉,我刚才测试了,string也可以完美的交换,汗死了。

你咋测试的?贴出代码来。


#include <iostream>
#include <string>
using namespace std;
void swap(int &rx,int &ry)
{
int temp=rx;
rx=ry;
ry=temp;
}
int main()
{
int x=2,y=5;
cout<<"x:"<<x<<" y:"<<y<<endl;
swap(x,y);
cout<<"x:"<<x<<" y:"<<y<<endl;
string s1="hello",s2="world";
cout<<"s1:"<<s1<<" s2:"<<s2<<endl;
swap(s1,s2);
cout<<"s1:"<<s1<<" s2:"<<s2<<endl;

小弟我只定义了一个交换数值的函数,但是可以交换所有类型,为什么还需要模板
string那么用的是stl的,你把swap都改个名字再试试看。