# std::get(std::array)

< cpp‎ | container‎ | array

定义于头文件 `<array>` |  |
| (1) |
template< std::size_t I, class T, std::size_t N > T& get( std::array<T,N>& a ) noexcept; |  | (C++11 起) (C++14 前)
template< std::size_t I, class T, std::size_t N > constexpr T& get( std::array<T,N>& a ) noexcept; |  | (C++14 起)
| (2) |
template< std::size_t I, class T, std::size_t N > T&& get( std::array<T,N>&& a ) noexcept; |  | (C++11 起) (C++14 前)
template< std::size_t I, class T, std::size_t N > constexpr T&& get( std::array<T,N>&& a ) noexcept; |  | (C++14 起)
| (3) |
template< std::size_t I, class T, std::size_t N > const T& get( const std::array<T,N>& a ) noexcept; |  | (C++11 起) (C++14 前)
template< std::size_t I, class T, std::size_t N > constexpr const T& get( const std::array<T,N>& a ) noexcept; |  | (C++14 起)
| (4) |
template< std::size_t I, class T, std::size_t N > const T&& get( const std::array<T,N>&& a ) noexcept; |  | (C++11 起) (C++14 前)
template< std::size_t I, class T, std::size_t N > constexpr const T&& get( const std::array<T,N>&& a ) noexcept; |  | (C++14 起)

从 `array` 提取第 `I` 个元素。

`I` 必须是范围 `[0, N)` 中的整数值。与 at() 或 operator[] 相反，这在编译时强制。

### 参数

a | - | 要提取其内容的数组

### 返回值

到 `a` 的第 `I` 元素的引用。

### 时间复杂度

常数。

### 示例

    #include <iostream>
    #include <array>

    int main()
    {
        std::array<int, 3> arr;

        // 设置值：
        std::get<0>(arr) = 1;
        std::get<1>(arr) = 2;
        std::get<2>(arr) = 3;

        // 获取值：
        std::cout << "(" << std::get<0>(arr) << ", " << std::get<1>(arr)
                  << ", " << std::get<2>(arr) << ")\n";
    }

输出：

    (1, 2, 3)

### 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

DR | 应用于 | 出版时的行为 | 正确行为
--- | --- | --- | ---
LWG 2485 | C++11 | 无对于 const array&& 的重载 | 添加重载

### 参阅

结构化绑定 (C++17) | 绑定指定的名字到初始化器的子对象或元组元素
operator[] (C++11) | 访问指定的元素 (公开成员函数)
at (C++11) | 访问指定的元素，同时进行越界检查 (公开成员函数)
std::get(std::tuple) | 元组式访问指定的元素 (函数模板)
std::get(std::pair) (C++11) | 访问 `pair` 的一个元素 (函数模板)
std::get(std::variant) (C++17) | 以给定索引或类型（若类型唯一）读取 `variant` 的值，错误时抛出异常 (函数模板)