关于交换两个值的函数的方法大致如下:
1. template <typename T>
void Swap(T &a, T &b) //运用中间变量
{
T tmp = a;
a = b;
b = tmp;
}
2.template <typename T> //运用加减运算
void Swap(T &a, T &b)
{
a = a + b;
b = a - b;
a = a - b;
}
3.template <typename T> //运用异或运算
void Swap(T &a, T &b)
{
a = a ^ b;
b = b ^ a;
a = a ^ b;
}