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

Why should I use 'unsigned' integer in this case? :

本文关键字:unsigned 整数 这种情况下 为什么      更新时间:2023-10-16
int racer::GoodLapCount() { 
    int s = 0;
    int i = 0;
    while (i < data.size()) {
       if (data[i].laptime < "01:30:000") {
        s++;
        }
    i++;
    }
    return s;
}

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

我认为adat是一个矢量。Vector返回无符号整型值,你可以这样检查:Vector 's size()

可以忽略警告,或者只使用unsigned int变量迭代vector。或者,如果你强烈需要i是一个简单的int型变量,你可以将size强制转换为int

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

但是如果size超过MAX_INT值会导致问题

此外,如果使用c++ 11,可以这样忽略迭代器变量:

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