我找到了以下代码并且不明白它的含义:
res>?=m[2];
这是我找到它的代码和它的一些上下文。
vector<int> m(3);
int s = 0;
... do stuff with m ...
res>?=m[2];
return res;
答案 0 :(得分:37)
这是旧的GCC扩展。
相当于a >?= b
是a = max(a,b);
您可以查看Minimum and Maximum Operators in C++
让操作员返回“最小”或者非常方便 两个论点的“最大值”。在GNU C ++中(但不是在GNU C中),
a <? b
是最小值,返回数值a和b中较小的一个;
a&gt;? B'/强>
是最大值,返回数值a和b中较大的一个。
这些运算符是非标准运算符,deprecated in GCC。您应该使用 std::min 和 std::max 。
答案 1 :(得分:7)
这当然不是标准的C ++。我可以猜测这是赋值+三元运算符的快捷方式,simmilary是赋值+二元运算符,如operator+=
和其他运算符:
res = (res > m[2]) ? res : m[2];
您可以在此处阅读相关内容:Extensions to the C++ Language:
a <? b
is the minimum, returning the smaller of the numeric values a and b;
a >? b
is the maximum, returning the larger of the numeric values a and b.