如何在单行语句中递减 C++ 中的多个变量?

How to decrement several variables in C++in a single line statement?

编辑:我用 'in a single line statement' 替换了短语 'in one line' 因为这是我要找的

假设我们手头有以下变量:

int a = 5;
int b = 9;

有没有办法压缩这个...

a--;
b--;

... 变成单行语句?? 问题不在于在 for 循环中递减多个变量, 因为这似乎是一个常见但无关的问题。

你可以这样做:

int a = 5;
int b = 4;
(a -= 1), (b -= 1);
std::cout << a << b;

输出:43

您可以将语句写在一行中,如下所示:

a--, b--;

(感谢@Aziz 改进了逗号而不是分号)

您可能指的是 "in a single statement",而不仅仅是 "in a single line"。 然后你可以使用逗号运算符:

(a--,b--);

您可以尝试类似的方法:

#include <iostream>

using namespace std;

    main ()
    {
      int a = 5, b = 9;
      a--, b--;
      cout << a;
      cout << b;        
      return 0;
    }

输出: 48

// use a template
template<class ... Args>
void decr(Args& ... args){
    (... , --args);
}

decr(a,b,c);

// or, in C++20, auto
void decr(auto& ... args){
    (... , --args);
}