public member function
<vector>

std::vector::at

      reference at (size_type n);const_reference at (size_type n) const;
访问元素
返回对vector中位置n的元素的引用。

该函数会自动检查n是否在vector的有效元素范围内,如果不在(即n大于或等于其size),则抛出out_of_range异常。这与不进行边界检查的成员operator[]形成对比。

参数

n
容器中元素的索引。
如果该索引大于或等于vector size,则会抛出out_of_range类型的异常。
请注意,第一个元素的位置是0(不是1).
成员类型size_type是一种无符号整型类型。

返回值

容器中指定位置的元素。

如果vector对象被const限定,则函数返回一个const_reference。否则,它返回一个引用.

成员类型引用const_reference是容器元素的引用类型(参见vector member types)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// vector::at
#include <iostream>
#include <vector>

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

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

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

  return 0;
}

输出
myvector contains: 0 1 2 3 4 5 6 7 8 9


复杂度

常量。

迭代器有效性

没有变化。

数据竞争

访问容器(const 和非 const 版本都不会修改容器)。
返回的引用可用于访问或修改元素。并发访问或修改不同元素是安全的。

异常安全

强保证:如果抛出异常,容器没有发生变化。
如果n越界,则抛出out_of_range

另见