Синтаксис:
#include <string> charT& at( size_type loc ); const charT& at( size_type loc ) const;
Функция at() возвращает символ строки с индексом loc. Функция at() безопаснее чем оператор [], потому что она не позволит вам обратиться к символам строки, стоящим после конца этой строки.
Например, рассмотрите следующий код:
string s("abcdef"); for( int i = 0; i < 10; i++ ) { cout << "Element " << i << " is " << s[i] << endl; }
В этом коде происходит выход за границы строки, что может привести к потенциально опасным результатам. Следующий код намного безопаснее:
string s("abcdef"); for( int i = 0; i < 10; i++ ) { cout << "Element " << i << " is " << s.at(i) << endl; }
Вместо попытки прочитать некорректные данные из памяти, функция at() определит, что это выход за границы строки и выдаст ошибку.
Смотрите также: оператор []