Узнать есть ли значение 3 функции, а есть ли индекс в QList<int> не понятно
QList<int> ppc;
ppc[0]=100;
ppc[1]=200;
ppc[2]=300;
ppc[3]=400;
int res = ppc.at(4);
Конечно вылазит окно ошибки, а как узнать есть ли ключ в списке не понятно, должна же быть там функция.
Понятие ключа относится к словарям (dict, map), а у списком, массивов и множеств (list, array, set) доступ к элементам осуществляется через индекс, который начинается от 0 до <размер - 1> или от 1 до размер.
Поэтому, чтобы проверить наличие индекса, нужно обратиться к размеру и сравнить размер с индексом.
У QList для проверки размера есть аж 3 идентичных функции: count, size и length.
Для вашего примера нужно добавить проверку:
int index = 4;
// Для индексации от 0 до n - 1
// А для индексации от 0 до n, проверка изменится на: index <= ppc.size()
if (index < ppc.size()) {
int res = ppc.at(index); // или ppc[index]
}
QList при неправильном индексе исключение не кидает (так исторически сложилось в Qt), но, например, в java есть ArrayIndexOutOfBoundsException, а у python это IndexError.
Тогда, вместо проверки можно ловить исключение, например тогда код с проверкой изменился бы на что-то такое:
int index = 4;
try {
int res = ppc.at(index);
} catch (IndexError) {
// ignore
}
Продвижение своими сайтами как стратегия роста и независимости