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