我曾经在C ++中看到一个-wired-运算符,如果大于...则赋值。
它是?
,<
和=
e.g。如果value大于x
,则x = value我不代表 x=(x<value)x:value
某种x<?=value
但是我记不起来了,在网上找不到它......有人能提醒我吗?
谢谢,
答案 0 :(得分:11)
没有运算符根据相对值分配变量。
但是,有?:运算符:
x = value > x ? value : x;
如果你从左到右大声朗读它,那就有道理了。
答案 1 :(得分:8)
gcc至少在版本3.3.6中! - 特定于gcc的语言扩展,提供用于实现最小值和最大值的专用运算符。也许这就是你在想什么?
Minimum and Maximum Operators in C++
我没有gcc方便测试它,但也可能有更新表格。
答案 2 :(得分:4)
怎么样:
(x<value) || (x=value)
答案 3 :(得分:1)
您是否在考虑ternary operator?
result = a > b ? x : y;
答案 4 :(得分:0)
x = x < value ? 0 : 1;
此函数将x设置为0是x <0。值,否则为1。
答案 5 :(得分:0)
这是一个更方便的if语句版本,用于赋值
int x = (some bool) ? trueval : falseval;
这大致意味着什么,当评估bool时,根据结果得到trueval或falseval,它比说
更容易int x;
if (someval)
x = trueval;
else
x = falseval;
答案 6 :(得分:0)
我怀疑你在考虑的是gcc extension 1 ,它允许你将中间操作数省略给条件运算符,所以(例如):
a = b ? b : c;
可以写成:
a = b ?: c;
1 尽管URL中有“2.95.3”,但我不知道链接页面的更新版本。如果有人,请随意指出(或编辑)。