在C++中同时重新分配两个变量的值

use*_*916 4 c++ python swap variable-assignment

C++ 有没有办法模拟这个 python 语法

a,b = b,(a+b)
Run Code Online (Sandbox Code Playgroud)

我知道使用临时变量这是可能的,但我很好奇是否可以不使用临时变量?

Vla*_*cow 8

您可以使用标准 C++ 函数,std::exchange例如

#include <utility>

//...

a = std::exchange( b, a + b );
Run Code Online (Sandbox Code Playgroud)

这是一个演示程序

#include <iostream>
#include <utility>

int main()
{
    int a = 1;
    int b = 2;

    std::cout << "a = " << a << '\n';
    std::cout << "b = " << b << '\n';

    a = std::exchange( b, a + b );

    std::cout << "a = " << a << '\n';
    std::cout << "b = " << b << '\n';
}
Run Code Online (Sandbox Code Playgroud)

程序输出是

a = 1
b = 2
a = 2
b = 3
Run Code Online (Sandbox Code Playgroud)

您可以在计算斐波那契数的函数中使用此方法。