这是个很经典很多时候都会用到的问题,但是容易被忘记。在这里做个笔记:
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);}
这样就实现了交换
方法一
|
方法二
|
本文共 448 字,大约阅读时间需要 1 分钟。
这是个很经典很多时候都会用到的问题,但是容易被忘记。在这里做个笔记:
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);}
这样就实现了交换
方法一
|
方法二
|
转载于:https://www.cnblogs.com/shoneworn/p/3385987.html