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

在这种情况下,我可以忽略警告“有符号和无符号整数表达式之间的比较”,还是在这里使用它有什么关系?

4

1 回答 1

0

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

您可以忽略警告或仅使用 unsigned int 变量来迭代向量。或者,如果您强烈需要 i 成为一个简单的 int 变量,您可以将 size 大致转换为 int

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

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

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

for(auto elem : adat) {
   if (elem.korido < "01:30:000") {
    s++;
}
于 2013-06-09T21:57:59.610 回答