这是个很经典很多时候都会用到的问题,但是容易被忘记。在这里做个笔记:
int a = 1; int b = 2; inline void Swap(int &a,int &b)
{
if(a!=b)
{
a=a^b;
b=a^b;
a=a^b;
}
}
^是异或XOR运算符;
优化后:
int &swap(int &a, int &b)
{
return (b ^= a ^= b ^= a);
}
这样就实现了交换
方法一
|
方法二
|
这是个很经典很多时候都会用到的问题,但是容易被忘记。在这里做个笔记:
int a = 1; int b = 2; inline void Swap(int &a,int &b)
{
if(a!=b)
{
a=a^b;
b=a^b;
a=a^b;
}
}
^是异或XOR运算符;
优化后:
int &swap(int &a, int &b)
{
return (b ^= a ^= b ^= a);
}
这样就实现了交换
方法一
|
方法二
|