Синтаксис:
#include <deque> T& at( size_type loc ); const T& at( size_type loc ) const;
Функция at() возвращает ссылку на элемент под номером loc текущей двусторонней очереди. Функция at() безопаснее оператора [] , так как она не позволит ссылаться на элементы за пределами двусторонней очереди.
Рассмотрим, например, такой код:
deque<int> v( 5, 1 ); for( int i = 0; i < 10; i++ ) { cout << "Элемент " << i << " - " << dq[i] << endl; }
Код здесь выходит за конец двусторонней очереди, выдавая потенциально опасные результаты. Следующий код намного безопаснее:
deque<int> v( 5, 1 ); for( int i = 0; i < 10; i++ ) { cout << "Элемент " << i << " - " << dq.at(i) << endl; }
Вместо того, чтобы пытаться считывать недействительные данные из памяти, функция at() поймет, что происходит выход за пределы двусторонней очереди и выбросит исключение (out_of_range).
Смотри также: оператор []