交换整型变量的值有三种方法:
void
swap(
int
&
x,
int
&
y)
{
int temp = x;
x = y;
y = temp;
}
{
int temp = x;
x = y;
y = temp;
}
这种方法也适用于其它类型的变量。
void
swap(
int
&
x,
int
&
y)
{
x += y;
y = x - y;
x -= y;
}
{
x += y;
y = x - y;
x -= y;
}
这种方法不需要临时变量,但只适用于整型。浮点型在内部是近似表示,不能保证在计算中精度不丢失,因此不适合此方法。
void
swap(
int
&
x,
int
&
y)
{
x ^= y;
y ^= x;
x ^= y;
}
{
x ^= y;
y ^= x;
x ^= y;
}
这种方法不需要临时变量,直接进行位操作。此方法只适用与整型变量,因为C++内置类型中只有整型可以表示位向量。