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

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

本文关键字:变量 C++ 单行 语句      更新时间:2023-10-16

编辑:我将短语"在一行中"替换为"在单行语句中",因为这就是我正在寻找的

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

int a = 5;
int b = 9;

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

a--;
b--;

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

您可能是指"在单个语句中",而不仅仅是"在一行中"。 然后你可以使用逗号运算符:

(a--,b--);
// 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);
}

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

a--, b--;

(感谢@Aziz用逗号代替分号进行改进(

你可以这样做:

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

输出:43

你可以尝试这样的东西:

#include <iostream>
using namespace std;
main ()
{
int a = 5, b = 9;
a--, b--;
cout << a;
cout << b;        
return 0;
}

输出: 48