<! - ?=和 - >的含义? C ++中的运算符

时间:2013-11-16 04:18:51

标签: c++ operator-keyword

是什么意思?运营商在下面的代码?在哪里使用?

adj[i][j] <?= adj[i][k] >? adj[k][j]

我无法在其他任何地方找到此运营商

1 个答案:

答案 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::minstd::max代替。