从刚开始接触 cpp 大家都会学习的一个东西就是如何交换两个变量的值,一般要新设置一个变量来储存中间值,然后进行赋值运算。下面要介绍的方法可以省去新建一个变量的空间,使用的位运算还可以提高效率。

#include<iostream>using namespace std;void swap(int &a,int &b){    a ^= b;    b ^= a;    a ^= b;}int main(){    int m = 1;    int n = 2;    swap(m, n);    cout << m << " " << n << endl;}

这里的'^'就是异或运算符⊕。
首先让a = a ⊕ b。
b = b ⊕ a,那么 b = b ⊕ a = b ⊕ a ⊕ b,所以b = a。
最后,a = a ⊕ b,那么 a = a ⊕ b = a ⊕ b ⊕ a = b。
至此,完成了 a 和 b 的交换。