我遇到过这一行,
bot <?= fnet[v][u] ? fnet[v][u] : ( cap[u][v] - fnet[u][v] );
这个<?=
符号是什么意思? Visual Studio 2012表示它不存在,那么它是什么?也许它出现在以前的某些版本中?
由于
答案 0 :(得分:5)
Visual Studio是对的,运算符不再有效。我不确定它是不是,或者它是语言扩展。编辑:这是一个被删除的gcc扩展 - http://gcc.gnu.org/ml/gcc/2005-09/msg00299.html
这是一项有条件的作业 - a <?= b
表示“如果b
将a
分配给a < b
。”
您可以改为使用std::min
和std::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]) );