「std::out of range」の版間の差分
提供: C++入門
(ページの作成:「std::out_of_range とは、例外クラスの1つです。out_of_rangeは、範囲外を参照したときに送出します。 '''読み方''' ;std::out_of_rang...」) |
(相違点なし)
|
2016年1月10日 (日) 20:33時点における版
std::out_of_range とは、例外クラスの1つです。out_of_rangeは、範囲外を参照したときに送出します。
読み方
- std::out_of_range
- えすてぃーでぃー あうと おぶ れんじ
概要
たとえば、配列が10個のサイズのときに、11番目にアクセスをしたら、一般的には境界エラーになります。配列の領域外にアクセスするとプログラムは、データ破壊がおきたり、プログラムが停止してしまうなどの問題がおきます。
C++ では、コンテナにアクセスするときに、境界のチェックを行い、範囲外へのアクセスは、 out_of_range を送出するといった実装になっています。
ここでは、out_of_range を送出する例を紹介します。
out_of_range.cpp の例
std::vecorでの例になります。はじめの初期化で、要素は10個用意します。at() で、100個にアクセスすると、例外が送出される例になります。
ソースコード out_of_range.cpp
/* * out_of_range.cpp * Copyright (C) 2016 kaoru <kaoru@localhost> */ #include <iostream> #include <stdexcept> #include <vector> int main(int argc, char const* argv[]) { std::vector<int> v(10); try { v.at(100) = 100; } catch (std::out_of_range& oor) { std::cerr << "Out of Range: " << oor.what() << std::endl; } return 0; }
コンパイル
c++ out_of_range.cpp -o out_of_range
実行例
% ./out_of_range Out of Range: vector