Namespaces
Variants

std:: get (std::array)

From cppreference.net
Definido en el encabezado <array>
template < std:: size_t I, class T, std:: size_t N >
T & get ( std:: array < T,N > & a ) noexcept ;
(1) (desde C++11)
(constexpr desde C++14)
template < std:: size_t I, class T, std:: size_t N >
T && get ( std:: array < T,N > && a ) noexcept ;
(2) (desde C++11)
(constexpr desde C++14)
template < std:: size_t I, class T, std:: size_t N >
const T & get ( const std:: array < T,N > & a ) noexcept ;
(3) (desde C++11)
(constexpr desde C++14)
template < std:: size_t I, class T, std:: size_t N >
const T && get ( const std:: array < T,N > && a ) noexcept ;
(4) (desde C++11)
(constexpr desde C++14)

Extrae el I th elemento del array utilizando la interfaz tuple-like .

I debe ser un valor entero en el rango [ 0 , N ) . Esto se aplica en tiempo de compilación a diferencia de at() o operator[] .

Contenidos

Parámetros

a - array del cual extraer los contenidos

Valor de retorno

Una referencia al I th elemento de a .

Complejidad

Constante.

Ejemplo

#include <array>
#include <iostream>
constexpr std::array v{1, 2, 3};
static_assert(get<0>(v) == 1 && get<1>(v) == 2 && get<2>(v) == 3);
int main()
{
    std::array<int, 3> a;
    // establecer valores:
    get<0>(a) = 1, get<1>(a) = 2, get<2>(a) = 3;
    // obtener valores:
    std::cout << '(' << get<0>(a) << ',' << get<1>(a) << ',' << get<2>(a) << ")\n";
}

Salida:

(1,2,3)

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 2485 C++11 no hay sobrecargas para const array&& se añaden las sobrecargas

Véase también

Structured binding (C++17) enlaza los nombres especificados a subobjetos o elementos de tupla del inicializador
accede al elemento especificado
(función miembro pública)
accede al elemento especificado con verificación de límites
(función miembro pública)
tupla accede al elemento especificado
(plantilla de función)
accede a un elemento de un pair
(plantilla de función)
lee el valor del variant dado el índice o el tipo (si el tipo es único), lanza excepción en caso de error
(plantilla de función)
obtiene un iterador o centinela de un std::ranges::subrange
(plantilla de función)
obtiene una referencia a la parte real o imaginaria de un std::complex
(plantilla de función)