C++中是否有一种方法来模拟这个Python语法

a,b = b,(a+b)

我知道使用一个临时变量可以实现这一点,但我很好奇,不使用临时变量是否可以实现这一点?

推荐答案

你可以使用标准的C++函数std::exchange

#include <utility>

//...

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

这是一个演示程序

#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';
}

程序输出为

a = 1
b = 2
a = 2
b = 3

可以在计算斐波那契数的函数中使用这种方法.

Python相关问答推荐

使用argsorted索引子集索引数组

如何将Matplotlib的fig.add_axes本地坐标与我的坐标关联起来?

使用多个性能指标执行循环特征消除

如何销毁框架并使其在tkinter中看起来像以前的样子?

无法使用equals_html从网址获取全文

使用polars .滤镜进行切片速度比pandas .loc慢

Odoo 14 hr. emergency.public内的二进制字段

PywinAuto在Windows 11上引发了Memory错误,但在Windows 10上未引发

如何让Flask 中的请求标签发挥作用

如何在虚拟Python环境中运行Python程序?

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

计算每个IP的平均值

索引到 torch 张量,沿轴具有可变长度索引

python中的解释会在后台调用函数吗?

如何更新pandas DataFrame上列标题的de值?

使用特定值作为引用替换数据框行上的值

numpy.unique如何消除重复列?

合并与拼接并举

如何将数据帧中的timedelta转换为datetime

将一个双框爆炸到另一个双框的范围内