C ++条件运算符

时间:2010-07-27 19:48:02

标签: c++ c operators conditional-operator

我曾经在C ++中看到一个-wired-运算符,如果大于...则赋值。 它是?<=

的组合

e.g。如果value大于x

,则x = value

不代表 x=(x<value)x:value

某种x<?=value

但是我记不起来了,在网上找不到它......有人能提醒我吗?

谢谢,

7 个答案:

答案 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”,但我不知道链接页面的更新版本。如果有人,请随意指出(或编辑)。