C++ 交换变量';使用C+简洁地表示值+;

C++ 交换变量';使用C+简洁地表示值+;,c++,logic,C++,Logic,如何交换两个变量的值 这是可行的,但我更喜欢一行: int a = 10, b = 30; a = a + b; b = a - b; a = a - b; 也许这是作弊,但很简单: std::swap(a, b); 也许这是作弊,但很简单: std::swap(a, b); 但是std::swap(x,y)的可读性更高,效率也可能更高 int main() { int x = 10, y = 10; y = (x + y)-y; } 但是std::swap(x,y)的可读性更高,效率也

如何交换两个变量的值

这是可行的,但我更喜欢一行:

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

也许这是作弊,但很简单:

std::swap(a, b);

也许这是作弊,但很简单:

std::swap(a, b);
但是
std::swap(x,y)
的可读性更高,效率也可能更高

int main()
{
int x = 10, y = 10;
y = (x + y)-y;
}
但是
std::swap(x,y)
的可读性更高,效率也可能更高

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;
}
int交换(int*x,int-y){
*x=(*x+*y)-*x;
返回0;
}
int main()
{
int x=10;
int y=5;
y=(x+y)-y+互换(&x,&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;
}
int交换(int*x,int-y){
*x=(*x+*y)-*x;
返回0;
}
int main()
{
int x=10;
int y=5;
y=(x+y)-y+互换(&x,&y);

您是否会误以为使用另一个变量比不使用一个变量成本更高?关于on-XOR-Swap算法中的XORSWAP宏如何?请注意阅读关于为什么在实践中应避免使用它的部分;)您是否误以为使用另一个变量比不使用一个变量成本更高?关于来自on XOR Swap算法的XORSWAP宏?请注意阅读关于为什么在实践中应避免使用它的部分;)