at

Материал из cppreference.com
Перейти к: навигация, поиск

Синтаксис:

    #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 наоборот:

  • При выполнении кода с v.at(i) Ошибка: This application has requested the Runtime to terminate it in an unusual way.
  • При выполнении кода с v[i] Ошибка: Expression: vector subscript out of range.


Смотри также: оператор []

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты
На других языках