我曾经写过
return max(ds.size(),idx);
,其中 ds
是 std::vector
,而 idx
是整数,但它给了我一个错误,指出 max
函数中的类型不兼容。后来我写了int i1 = ds.size() int i2= idx, return max(i1,i2)
,然后就正常了。
任何人都可以告诉这背后的原因是什么吗?
std::max
的参数必须具有相同的类型。
ds.size()
返回 std::size_t
,除非 idx
可以为负数,否则您也应该将其设为 std::size_t
。