public member function
<array>

std::array::at

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

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

参数

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

返回值

数组中指定位置的元素。

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

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

示例

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

int main ()
{
  std::array<int,10> myarray;

  // assign some values:
  for (int i=0; i<10; i++) myarray.at(i) = i+1;

  // print content:
  std::cout << "myarray contains:";
  for (int i=0; i<10; i++)
    std::cout << ' ' << myarray.at(i);
  std::cout << '\n';

  return 0;
}

输出
myarray contains: 1 2 3 4 5 6 7 8 9 10


复杂度

常量。

迭代器有效性

没有变化。

数据竞争

返回的引用可用于访问或修改元素。并发访问或修改不同元素是安全的。

异常安全

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

另见