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