Cpp-standard-library-cpp-array-at
提供:Dev Guides
C ++配列ライブラリ-at()関数
説明
- C ++関数* std
- array :: at()*は、指定された配列コンテナーの位置Nにある要素への参照を返します。
宣言
- 以下は、std
- arrayヘッダーからのstd :: array :: at()関数の宣言です。
reference at(size_type n);
cont_referece at(size_t n) const;
パラメーター
*N* -配列内の要素のインデックス。
戻り値
Nが有効なインデックスの場合、指定された配列のインデックスNに存在する要素を返します。そうでない場合は out_of_range 例外をスローします。
配列オブジェクトがconstで修飾されている場合、メソッドはconst参照を返し、そうでない場合は参照を返します。
例外
Nの値が有効な配列インデックスでない場合、このメンバー関数は out_of_range 例外をスローします。
時間の複雑さ
定数、つまり O(1)
例
以下の例では、step-1は例外なく配列の内容を出力します。 手順2は、try-catchブロックを使用した例外処理を示しています。
#include <iostream>
#include <array>
#include <stdexcept>
using namespace std;
int main(void) {
array<int, 5> arr = {10, 20, 30, 40, 50};
size_t i;
/*print array contents*/
for (i = 0; i < 5; ++i)
cout << arr.at(i) << " ";
cout << endl;
/*generate out_of_range exception.*/
try {
arr.at(10);
} catch(out_of_range e) {
cout << "out_of_range expcepiton caught for " << e.what() << endl;
}
return 0;
}
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
10 20 30 40 50
out_of_range expcepiton caught for array::at: __n (which is 10) >= _Nm (which is 5)