我看到了这段代码
a<?=b; // (a and b are int)
来自Google Code Jam的解决方案。
但我的VS在'?'
上显示错误我只知道以下内容:
a>b?a=0:b=0;
感谢。
答案 0 :(得分:9)
老操作员;它是(自已删除)gcc扩展名为'minimum'。那就是:
a <?= b;
与:
相同a = a < b ? a : b;
答案 1 :(得分:1)
C ++的非标准GCC扩展允许<?
作为运算符,相当于min
。我之前没有见过<?=
,但据推测它是一个就地版本;也就是说,a <?= b
相当于a = min(a,b)
。
请注意,GCC开发人员第二天早上醒来,意识到这是一个坏主意。该运营商现已弃用。
答案 2 :(得分:1)
如果 a 恰好大于 b ,则会将a设置为b。
基本上与:
相同a = a < b ? a : b;
示例:
int a = 5;
int b = 2;
a<?=b; //a is now 2!
我不会提倡实际使用这样的解决方案,但这太可怕了。
正如其他人所说,它是非标准GCC扩展的一部分,但请不要使用它。