【发布时间】:2014-03-14 02:46:09
【问题描述】:
我正在编译一个带有 gcc 的 -Wall 标志的程序。我在某个时候对Mat::cols 和Mat::rows 进行了比较(使用无符号整数),并收到有关比较有符号整数和无符号整数的警告。尽管丢弃它并不是什么大不了的事,但我很好奇 Mat 具有负大小的原因是什么。
从逻辑上讲,矩阵不能比空矩阵(0 行和 0 列)更空,那么 -1 行或 -1 列的矩阵是什么意思?
【问题讨论】:
-
我认为这只是一个设计缺陷。很多人,包括许多知名和大型库的作者,都没有很好地使用整数类型。对各种整数使用
int是一个常见错误。 -
我误解了这个问题,我的错。我考虑了 Mat 中的值。删除我的帖子。
-
我也讨厌 .rows 和 .cols 是有符号的……只是习惯于循环遍历 std::vector 的无符号类型……
-
我认为 vlad 关于 int 循环计数器的说法可能是一个原因。我个人总是使用 size_t 作为循环计数器类型。需要更多输入,但大小和索引的类型是正确的