标签: c++
我有这行代码:
out = std::min(x - 1, y - 1);
但它返回了两个数量的更大。怎么会这样?
答案 0 :(得分:11)
只有当x和y为无符号类型且其中一个为零时,才会发生这种情况。
x
y
从无符号值0减去1将导致无符号值回绕到该类型的最大可能值。因此,另一个值会更小。
作为旁注:只责备你的编译器/ STL作为最后的手段。