# std::get(std::array)

From cppreference.com
< cpp‎ | container‎ | array

template< size_t I, class T, size_t N > constexpr T& get( array<T,N>& a ) noexcept; | (1) | (since C++11)
template< size_t I, class T, size_t N > constexpr T&& get( array<T,N>&& a ) noexcept; | (2) | (since C++11)
template< size_t I, class T, size_t N > constexpr const T& get( const array<T,N>& a ) noexcept; | (3) | (since C++11)
template< size_t I, class T, size_t N > constexpr const T&& get( const array<T,N>&& a ) noexcept; | (4) | (since C++17)

Extracts the `Ith` element element from the array.

`I` must be an integer value in range `[0, N)`. This is enforced at compile time as opposed to at() or operator[].

### Parameters

a | - | array whose contents to extract

### Return value

A reference to the `Ith` element of `a`.

### Complexity

Constant.

### Notes

The overloads are marked as constexpr since C++14.

### Example

Run this code

    #include <iostream>
    #include <array>

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

        // set values:
        std::get<0>(arr) = 1;
        std::get<1>(arr) = 2;
        std::get<2>(arr) = 3;

        // get values:
        std::cout << "(" << std::get<0>(arr) << ", " << std::get<1>(arr)
                  << ", " << std::get<2>(arr) << ")\n";
    }

Output:

    (1, 2, 3)

### See also

operator[] | access specified element (public member function)
at | access specified element with bounds checking (public member function)
std::get(std::tuple) | tuple accesses specified element (function template)
std::get(std::pair) (C++11) | accesses an element of a `pair` (function template)
std::get(std::variant) (C++17) | reads the value of the variant given the index or the type (if the type is unique), throws on error (function template)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/array/get&oldid=102425"