通常来说,假设v是一个vector对象,则v.at(n)和v[n]是一样的,只不过前者会检查是否越界(因此花费的时间稍多),而后者不会(后者越界会导致未定义行为)。
具体而言,vector
样例:(摘自cplusplus.com)
// vector::at
#include
#include
int main ()
{
std::vectormyvector (10); // 10 zero-initialized ints
// assign some values:
for (unsigned i=0; imyvector.at(i)=i;
std::cout << "myvector contains:";
for (unsigned i=0; istd::cout << ' ' << myvector.at(i);
std::cout << '\n';
return 0;
}
at函数和[]函数使用可以说是一模一样. 都是为了访问对应index中存储的数据, 如果index大于vector的size. 两者都是抛出out_of_range的exception. size可以通过size()函数获得.
at配合try语句使用