int racer::GoodLapCount() {
int s = 0;
int i = 0;
while (i < data.size()) {
if (data[i].laptime < "01:30:000") {
s++;
}
i++;
}
return s;
}
Могу ли я игнорировать предупреждение «сравнение между целочисленными выражениями со знаком и без знака» в этом случае, или здесь что-то имеет значение, использовать его или нет?
Я думаю, что адат это вектор. Vector возвращает беззнаковое целочисленное значение типа, вы можете проверить это: размер вектора ()
Вы можете игнорировать предупреждение или просто использовать переменную типа unsigned для перебора вектора. Или, если вам нужно, чтобы я был простой переменной типа int, вы можете приблизительно привести размер к int
while(i < (int)adat.size()) {
но это вызывает проблемы, если размер превышает значение MAX_INT.
Кроме того, если вы используете C ++ 11, вы можете игнорировать переменную итератора следующим образом:
for(auto elem : adat) {
if (elem.korido < "01:30:000") {
s++;
}
Других решений пока нет …