是什么意思?运营商在下面的代码?在哪里使用?
adj[i][j] <?= adj[i][k] >? adj[k][j]
我无法在其他任何地方找到此运营商
答案 0 :(得分:8)
它们是由G ++提供的旧的,非标准的compiler extensions,用于计算其操作数的最小值或最大值。 a <? b
相当于min(a, b)
(其中每个运算符只计算一次,就像调用内联函数一样),而a >? b
相当于max(a, b)
。
<?=
和>?=
表单是运算符的赋值形式 - a <?=b
等同于a = a <? b
等。
除了非标准之外,这些运算符已被弃用并从现代版本的G ++中删除。来自deprecated features页面:
G ++最小和最大运算符('
<?
'和'>?
')及其复合形式('<?=
')和'>?=
')已弃用,现已从G ++中删除。应修改使用这些运算符的代码,以使用std::min
和std::max
代替。