C++中vector的at函数是怎么使用啊 ?代表什么值啊??

2025-02-01 01:02:35
推荐回答(3个)
回答1:

通常来说,假设v是一个vector对象,则v.at(n)和v[n]是一样的,只不过前者会检查是否越界(因此花费的时间稍多),而后者不会(后者越界会导致未定义行为)。


具体而言,vector(T是某种类型)的at函数接受一个vector::size_type类型的参数n(一种无符号整型类型),返回容器位置为n的元素的引用(注意第一个位置为0)。函数的时间复杂度为O(1),即常数时间。如果n越界,会抛出out_of_range异常。


样例:(摘自cplusplus.com)

// vector::at
#include 
#include 

int main ()
{
  std::vector myvector (10);   // 10 zero-initialized ints

  // assign some values:
  for (unsigned i=0; i    myvector.at(i)=i;

  std::cout << "myvector contains:";
  for (unsigned i=0; i    std::cout << ' ' << myvector.at(i);
  std::cout << '\n';

  return 0;
}

回答2:

at函数和[]函数使用可以说是一模一样. 都是为了访问对应index中存储的数据, 如果index大于vector的size. 两者都是抛出out_of_range的exception. size可以通过size()函数获得.

回答3:

at配合try语句使用