在进行交换两个数据的时候,我们可以多种上方法实现。一般的是使用一个额外的辅助变量来做交换,其它是利用数学运算符来作交换了。
下面是几个实现数据的交换的函数。
第一类,使用辅助变量来完成交换
void swap1(int &a,int &b)
{
int temp=a;
a=b;
b=temp;
}
第二类,使用运算符来完成交换。
void swap2(int &a,int &b)
{
a=a+b;
b=a-b;
a=a-b;
}
void swap3(int &a,int &b)
{
a=a^b;
b=a^b;
a=a^b;
}
void swap4(int &a,int &b)
{
a=a*b;
b=a/b;
a=a/b;
}
但是在使用运算符完成数据交换时,对于同一个地址的数据交换会将该地直的值,变为0的。
如:
int a[]={5,6,7,8};
我们交换swap(a[0],a[0]). 注意:我们交换是数组中同一个位置上的数。
使用上面swap2-4:会使我们把a[0]变成0的。
这个要注意的。