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