gpt4 book ai didi

c++ - C++ 中的并行赋值

转载 作者:行者123 更新时间:2023-11-30 16:37:26 25 4
gpt4 key购买 nike

有没有办法在C++中进行并行赋值?目前,以下编译(带有警告)

#include <iostream> 

int main() {
int a = 4;
int b = 5;
a, b = b, a;
std::cout << "a: " << a << endl
<< "b: " << b << endl;

return 0;
}

并打印:

a: 4
b: 5

我希望它打印的内容......如果不明显的话,是:

a: 5
b: 4

例如,Ruby 或 Python。

最佳答案

这是不可能的。您的代码示例

a, b = b, a;

按以下方式解释:

a, (b = b), a

它什么也没做。逗号运算符使其返回 a 的值(最右边的操作数)。因为赋值绑定(bind)更紧密,所以 b = b 在括号中。

正确的做法是

std::swap(a, b);

Boost 包含一个元组类,您可以使用它来执行操作

tie(a, b) = make_tuple(b, a);

它在内部创建一个对 a 和 b 的引用的元组,然后为它们分配一个 b 和 a 的元组。

关于c++ - C++ 中的并行赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47926650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com