时间:2012-11-24 23:42:00

标签: c++

  

可能重复:
  What does the >?= operator mean?

我遇到过这一行,

bot <?= fnet[v][u] ? fnet[v][u] : ( cap[u][v] - fnet[u][v] );

这个<?=符号是什么意思? Visual Studio 2012表示它不存在,那么它是什么?也许它出现在以前的某些版本中?

由于

1 个答案:

答案 0 :(得分:5)

Visual Studio是对的,运算符不再有效。我不确定它是不是,或者它是语言扩展。编辑:这是一个被删除的gcc扩展 - http://gcc.gnu.org/ml/gcc/2005-09/msg00299.html

这是一项有条件的作业 - a <?= b表示“如果ba分配给a < b。”

您可以改为使用std::minstd::max

bot <?= fnet[v][u] ? fnet[v][u] : ( cap[u][v] - fnet[u][v] );

会转换为

bot = std::min(bot, fnet[v][u] ? fnet[v][u] : (cap[u][v]-fnet[u][v]) );