Метод at класса array
Метод at класса array возвращает ссылку на элемент массива по указанному индексу. В отличие от оператора [], метод at выполняет проверку выхода за границы массива и генерирует исключение std::out_of_range, если индекс недопустим. В первый параметр мы передаем индекс элемента, к которому хотим получить доступ. Индексация начинается с 0.
Синтаксис
arr.at(pos)
Пример
Давайте получим элемент массива с индексом 2 и выведем его на экран:
#include <iostream>
#include <array>
using namespace std;
int main()
{
array<int, 5> arr = {1, 2, 3, 4, 5};
cout << arr.at(2) << endl;
return 0;
}
Результат выполнения кода:
3
Пример
Давайте изменим элемент массива с индексом 1, используя метод at:
#include <iostream>
#include <array>
using namespace std;
int main()
{
array<int, 5> arr = {1, 2, 3, 4, 5};
arr.at(1) = 10;
cout << arr.at(0) << " " << arr.at(1) << " " << arr.at(2) << endl;
return 0;
}
Результат выполнения кода:
1 10 3
Пример
Давайте попробуем обратиться к элементу с недопустимым индексом 10 и посмотрим, что произойдет:
#include <iostream>
#include <array>
#include <stdexcept>
using namespace std;
int main()
{
array<int, 5> arr = {1, 2, 3, 4, 5};
try
{
cout << arr.at(10) << endl;
}
catch (const out_of_range& e)
{
cout << "Error: " << e.what() << endl;
}
return 0;
}
Результат выполнения кода:
"Error: array::at: __n (which is 10) >= _Nm (which is 5)"