Я хочу:
- Сохраните значение индекса по умолчанию "-1". Если я закончу итерацию по вектору (используя цикл for), а значение индекса по-прежнему равно «-1», я знаю, что ни одно из значений, проверенных моим циклом for, не совпадает.
- Если найдено подходящее значение, обновите значение индекса, чтобы оно соответствовало индексу значения в векторе, который я итерирую.
Пример:
int index = -1;
for (int i; i < vector.size(); i++){
if (vector[i] == 1) {
index = i;
break;
}
}
Однако я всегда получаю предупреждение о «сравнении целочисленных выражений со знаком и без знака» от for (int i; i < vector.size(); i++)
. К сожалению, я не могу просто использовать unsigned integer index = -1
, поскольку целые числа без знака не могут хранить отрицательные значения. Безопасно ли хранить значение unsigned int i
в int index
или мне нужно найти другой метод сравнения? В этом случае я бы изменил цикл for на for (unsigned int i; i < vector.size(); i++)
, но оставил остальную часть кода то же.
Я мог бы использовать отдельную логическую переменную, но использование дополнительной переменной каждый раз, когда я сталкиваюсь с этим сценарием, кажется более загроможденным. Это будет выглядеть примерно так:
bool found = false;
unsigned int index = -1;
for (unsigned int i; i < vector.size(); i++){
if (vector[i] == 1) {
index = i;
bool = true;
break;
}
}