使用C ++简洁地交换变量的值

时间:2015-03-06 11:40:41

标签: c++ logic

如何交换两个变量的值?

这有效,但我更喜欢一个班轮:

int a = 10, b = 30;
a = a + b;
b = a - b;
a = a - b;

3 个答案:

答案 0 :(得分:4)

也许这是在作弊,但那只是:

std::swap(a, b);

答案 1 :(得分:0)

std::tie(x,y) = std::make_pair(y,x);

但是std::swap(x,y)更具可读性,可能效率更高。

答案 2 :(得分:0)

int main()
{
int x = 10, y = 10;
y = (x + y)-y;
}

解决了一点但不完全但是如果你使用这个代码就解决了

int swap(int *x, int y){
*x = (*x + *y) - *x;
return 0;
}

int main()
{
int x = 10;
int y = 5;
y = (x + y) - y + swap(&x, &y);
cout << x << endl << y << endl;
}