0

如果我有一个整数向量

vector<int> vec;

我按以下方式循环

for(int i=0; i<vec.size(); i++)
{
   // do something
}

我收到有符号/无符号不匹配警告。

当然我可以声明i类型size_t来解决问题。但是如果我保持不变iint我会在运行时遇到一些问题吗?

4

3 回答 3

3

请改用向量iterator

vector<int>::iterator it;
for (it = vec.begin(); it!= vec.end(); ++it)
{
   //do something
}
于 2013-03-29T14:25:47.623 回答
2

当然,如果vec.size()大于有符号整数的最大值。

limits.h您可以在此中找到最大值。

于 2013-03-29T14:13:24.863 回答
2

是的。对于超过 asigned可以存储的值的大数字,这将是未定义的行为。

但是,对于可以存储在 a 中的少量数字,signed没关系。

于 2013-03-29T14:14:35.540 回答