当前位置:  开发笔记 > 编程语言 > 正文

C++中的并行赋值

如何解决《C++中的并行赋值》经验,为你挑选了1个好方法。

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

#include  

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中一样.



1> Johannes Sch..:

那是不可能的.你的代码示例

a, b = b, a;

按以下方式解释:

a, (b = b), a

它什么都不做.逗号运算符使其返回a(最右边的操作数)的值.因为赋值更严格,b = b是parens.

这样做的正确方法就是

std::swap(a, b);

Boost包含一个元组类,您可以使用它

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

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

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有