vectorで安全に要素にアクセスする
at
を使って、std::vector
の要素数を超えてアクセスしようとすると、std::out_of_range
例外が投げられる。
#include <iostream> #include <vector> #include <stdexcept> int main() { std::vector<int> vec = {1, 2}; try { std::cout << "vec[0] = " << vec.at(0) << std::endl; std::cout << "vec[1] = " << vec.at(1) << std::endl; std::cout << "vec[2] = " << vec.at(2) << std::endl; } catch (std::out_of_range& ex) { std::cout << "out of range" << std::endl; } return 0; }
出力
vec[0] = 1 vec[1] = 2 out of range