C中的并行分配

前端之家收集整理的这篇文章主要介绍了C中的并行分配前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法在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,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的元组.

猜你在找的C&C++相关文章