Почему в этом случае я должен использовать целое число без знака? :

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

Могу ли я игнорировать предупреждение «сравнение между целочисленными выражениями со знаком и без знака» в этом случае, или здесь что-то имеет значение, использовать его или нет?

0

Решение

Я думаю, что адат это вектор. Vector возвращает беззнаковое целочисленное значение типа, вы можете проверить это: размер вектора ()

Вы можете игнорировать предупреждение или просто использовать переменную типа unsigned для перебора вектора. Или, если вам нужно, чтобы я был простой переменной типа int, вы можете приблизительно привести размер к int

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

но это вызывает проблемы, если размер превышает значение MAX_INT.

Кроме того, если вы используете C ++ 11, вы можете игнорировать переменную итератора следующим образом:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]