Проверка индекса std::array в C++
Метод at возвращает элемент по индексу
так же, как квадратные скобки, но следит за
границами. При корректном индексе результат
совпадает с обращением через []:
std::array<int, 3> nums{10, 20, 30};
std::cout << nums.at(1) << "\n";
Если индекс выходит за пределы, библиотека
бросает исключение std::out_of_range.
В основном учебнике вы уже видели перехват
исключений, поэтому можно обернуть опасный
вызов в try и catch:
std::array<int, 3> nums{10, 20, 30};
try {
std::cout << nums.at(5) << "\n";
} catch (const std::out_of_range& err) {
std::cout << "bad index\n";
}
Дан массив:
std::array<std::string, 3> tags{"one", "two", "three"};
Выведите в консоль элемент с индексом 2
через метод at.
Для массива из трех целых 1, 2, 3
попробуйте прочитать индекс 9 через
метод at и перехватите исключение сообщением
"range error".