在这种情况下,为什么我应该使用'unsigned'整数? :

时间:2013-06-09 21:52:02

标签: c++ unsigned-integer

int racer::GoodLapCount() { 
    int s = 0;
    int i = 0;
    while (i < data.size()) {
       if (data[i].laptime < "01:30:000") {
        s++;
        }
    i++;
    }
    return s;
}

在这种情况下,我可以忽略警告'有符号和无符号整数表达式之间的比较',还是在这里使用它是否重要?

1 个答案:

答案 0 :(得分:0)

我认为adat是一个载体。 Vector返回无符号整数类型值,您可以检查:vector's size()

您可以忽略警告或仅使用unsigned int变量迭代向量。或者如果你强烈要求我成为一个简单的int变量,你可以粗略地将大小转换为int

while(i < (int)adat.size()) {

但如果大小超过MAX_INT值,则会导致问题。

此外,如果您使用的是C ++ 11,则可以通过以下方式忽略迭代器变量:

for(auto elem : adat) {
   if (elem.korido < "01:30:000") {
    s++;
}