reference at(size_type n); // (1) C++11
constexpr reference at(size_type n); // (1) C++17
const_reference at(size_type n) const; // (2) C++11
constexpr const_reference at(size_type n) const; // (2) C++14
概要
n番目の要素を参照する。
戻り値
a.at(n)
はn
番目の要素への参照を返す。もし、a
がconst
だった場合には、n
番目の要素へのconst
参照を返す。
例外
n >= a.size()
だった場合にはout_of_range
例外を投げる。
計算量
定数時間
備考
a.at(n)
は *(a.begin() + n)
と同じ結果になる。
例
#include <iostream>
#include <array>
int main()
{
std::array<int, 3> ar = {3, 1, 4};
const std::array<int, 3>& car = ar;
int& a = ar.at(2);
const int& b = car.at(2);
std::cout << a << std::endl;
std::cout << b << std::endl;
try {
ar.at(999); // 範囲外アクセス
}
catch (std::out_of_range& e) {
std::cout << "out of range" << std::endl;
}
}
出力
4
4
out of range
バージョン
言語
- C++11
処理系
- Clang: ??
- GCC: 4.7.0 ✅
- ICC: ??
- Visual C++: 2008 (std::tr1) ✅, 2010 ✅, 2012 ✅