我正在尝试检查分数并输出谁曾获胜。黑色> 0,白色

GetValue(board) > 0 ? cout << "Black wins" : cout << "White wins";

最佳答案

您为什么不想使用变量?如果这样做,则可以使用复合三元运算符:

int val = GetValue(board);
cout << val == 0 ? "Tie" : (val < 0 ? "White wins" : "Black wins");


编辑:但是那不是一行,是吗? REAL一线,由lambda函数提供。
它还假定GetValue返回一个int。并要求using namespace std为简洁起见。

cout << vector<string>({"White wins", "Tie", "Black Wins"})[([](int x){return(0<x)-(x<0)+1;}(GetValue(board)))];


(也不要实际使用)

关于c++ - 仅通过一个函数调用输出分数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26208252/

10-11 21:00