Espacios de nombres
Variantes

std::get(std::pair)

De cppreference.com
 
 
Biblioteca de servicios
 
std::pair
Funciones miembro
Funciones no miembro
(hasta C++20)(hasta C++20)(hasta C++20)(hasta C++20)(hasta C++20)(C++20)
(C++11)
Guías de deducción(C++17)
Clases auxiliares
(C++11)
 
<tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody>
Definido en el archivo de encabezado <utility>
(1)
template< std::size_t I, class T1, class T2 > typename std::tuple_element<I, std::pair<T1,T2> >::type& get( std::pair<T1, T2>& p ) noexcept;
(desde C++11)
(hasta C++14)
template< std::size_t I, class T1, class T2 > constexpr std::tuple_element_t<I, std::pair<T1,T2> >& get( std::pair<T1, T2>& p ) noexcept;
(desde C++14)
(2)
template< std::size_t I, class T1, class T2 > const typename std::tuple_element<I, std::pair<T1,T2> >::type& get( const std::pair<T1,T2>& p ) noexcept;
(desde C++11)
(hasta C++14)
template< std::size_t I, class T1, class T2 > constexpr const std::tuple_element_t<I, std::pair<T1,T2> >& get( const std::pair<T1,T2>& p ) noexcept;
(desde C++14)
(3)
template< std::size_t I, class T1, class T2 > typename std::tuple_element<I, std::pair<T1,T2> >::type&& get( std::pair<T1,T2>&& p ) noexcept;
(desde C++11)
(hasta C++14)
template< std::size_t I, class T1, class T2 > constexpr std::tuple_element_t<I, std::pair<T1,T2> >&& get( std::pair<T1,T2>&& p ) noexcept;
(desde C++14)
(4)
template< std::size_t I, class T1, class T2 > const typename std::tuple_element<I, std::pair<T1,T2> >::type&& get( const std::pair<T1,T2>&& p ) noexcept;
(desde C++11)
(hasta C++14)
template< std::size_t I, class T1, class T2 > constexpr const std::tuple_element_t<I, std::pair<T1,T2> >&& get( const std::pair<T1,T2>&& p ) noexcept;
(desde C++14)
template <class T, class U> constexpr T& get(std::pair<T, U>& p) noexcept;
(5) (desde C++14)
template <class T, class U> constexpr const T& get(const std::pair<T, U>& p) noexcept;
(6) (desde C++14)
template <class T, class U> constexpr T&& get(std::pair<T, U>&& p) noexcept;
(7) (desde C++14)
template <class T, class U> constexpr const T&& get(const std::pair<T, U>&& p) noexcept;
(8) (desde C++14)
template <class T, class U> constexpr T& get(std::pair<U, T>& p) noexcept;
(9) (desde C++14)
template <class T, class U> constexpr const T& get(const std::pair<U, T>& p) noexcept;
(10) (desde C++14)
template <class T, class U> constexpr T&& get(std::pair<U, T>&& p) noexcept;
(11) (desde C++14)
template <class T, class U> constexpr const T&& get(const std::pair<U, T>&& p) noexcept;
(12) (desde C++14)

Extrae un elemento del par usando una interfaz similar a una tupla.

Las sobrecargas basadas en índices (1-4) no se compilan si el índice I no es ni 0 ni 1.

Las sobrecargas basadas en tipo (5-12) no se compilan si los tipos T y U son los mismos.

Parámetros

p - El par cuyo contenido hay que extraer.

Valor de retorno

1-4) Devuelve una referencia a p.first if I==0 y una referencia a p.second si I==1.
5-8) Devuelve una referencia a p.first.
9-12) Devuelve una referencia a p.second.

Ejemplo

#include <iostream>
#include <utility>

int main()
{
    auto p = std::make_pair(1, 3.14);
    std::cout << '(' << std::get<0>(p) << ", " << std::get<1>(p) << ")\n";
    std::cout << '(' << std::get<int>(p) << ", " << std::get<double>(p) << ")\n";
}

Salida:

(1, 3.14)
(1, 3.14)

Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2485 C++11 (por índice)
C++14 (por tipo)
No existen sobrecargas para const pair&&. Se agregaron las sobrecargas.

Véase también

Vínculo estructurado (C++17) Vincula los nombres especificados a subobjetos o elementos de una tupla del inicializador. [editar]
La tupla accede al elemento especificado.
(plantilla de función) [editar]
Accede a un elemento de un array.
(plantilla de función) [editar]
Lee el valor del variante dado el subíndice o el tipo (si el tipo es único), lanza una excepción si existe un error.
(plantilla de función) [editar]
Obtiene un iterador o centinela de un subrango (std::ranges::subrange).
(plantilla de función) [editar]