int racer::GoodLapCount() {
int s = 0;
int i = 0;
while (i < data.size()) {
if (data[i].laptime < "01:30:000") {
s++;
}
i++;
}
return s;
}
在这种情况下,我可以忽略警告“有符号和无符号整数表达式之间的比较”,还是在这里使用它有什么关系?
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 变量来迭代向量。或者,如果您强烈需要 i 成为一个简单的 int 变量,您可以将 size 大致转换为 int
while(i < (int)adat.size()) {
但如果大小超过 MAX_INT 值,则会导致问题。
此外,如果您使用的是 C++ 11,您可以通过以下方式忽略迭代器变量:
for(auto elem : adat) {
if (elem.korido < "01:30:000") {
s++;
}