【发布时间】:2016-05-13 08:14:07
【问题描述】:
我在我的 s6 上使用名为 CppDroid 的 C++ 应用程序来制作一个快速程序。
如何使用 size_t 作为计数器上“for 循环”的限制器?
int c;
//... more codes here...
for (c=0; c < a.used; ++c)
//... more codes here...
a.used 是一些使用过的数组,它们来自一个解决方案,用于制作dynamic sized array
错误是:不同符号整数的比较:'int'和'size_t'(又名无符号整数)
for 循环是程序的内部嵌套循环之一,因此我想尽可能将变量 c 保持为“int”。
我看过关于 Comparing int with size_t 的示例,但我不确定它有什么帮助,因为它是针对“如果”条件的。
【问题讨论】:
-
使用
std::size_t c;而不是int c;? -
无论如何,这是一个警告,而不是错误(除非您要求将警告视为错误,这可能是明智的)。解决此问题的一个好方法是引入一个
n_items函数,该函数将动态大小作为有符号整数返回,例如ptrdiff_t。使用 typedefSize会有所帮助。 -
您仍然可以使用 cast 进行投射。
-
interjay 这是 ++c ty,已编辑
标签: c++