简述:
本节记录一下两个数据进行交换的三种写法。
其中第三中可算有点趣味。
A、手写swap
利用我们自己写的swap函数,利用引用来交换。
#include<iostream>
using namespace std;
void swap(int &a,int &b)
// & ——引用写法 注意非引用情况是仅将副本交换不会影响原来的值
{
int t=a;
a=b;
b=t;
}
int main()
{
int a=1,b=2;
swap(a,b);
cout<<a;
return 0;
}
输出结果为 2
B、利用algorithm头文件
利用头文件给定的swap函数进行交换,此处不仅仅可以交换int值 还可以交换各种相同数据类型的值。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a=1,b=2;
swap(a,b);
char x='x',y='y';
swap(x,y);
return 0;
}
此时 a=2 b=1 x=‘y’ y=‘x’
C、利用按位异或^
利用位运算符 ^ 来解决,借鉴引用的方法。
#include<iostream>
using namespace std;
void swap(int &a,int &b)
{
a=a^b;
b=a^b;
a=a^b;
return;
}
int main()
{
int a=1,b=2;
swap(a,b);
return 0;
}
此时也完成了a与b的交换。