Используйте vec.at(i).at(j)
и должны использовать это в блоке try-catch
, поскольку at()
выдаст исключение std::out_of_range
, если индекс недействителен:
try
{
T & item = vec.at(i).at(j);
}
catch(const std::out_of_range & e)
{
std::cout << "either index i or j is out of range" << std::endl;
}
РЕДАКТИРОВАТЬ:
КакВы сказали в комментарии:
Я действительно хочу, чтобы программа остановилась в случае возникновения исключения.- jbssm 5 минут назад
В этом случае вы можете повторно отбросить в блоке catch
после печати сообщения о том, что оно вышло за пределы диапазона, так что вы можете узнатьпричина, почему это остановилось.И вот как вы отбрасываете :
catch(const std::out_of_range & e)
{
std::cout << "either index i or j is out of range" << std::endl;
throw; //it rethrows the excetion
}