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