Namespaces
Variants

std:: pair

From cppreference.net
Utilities library
Definido en el encabezado <utility>
template <

class T1,
class T2

> struct pair ;

std::pair es una plantilla de clase que proporciona una forma de almacenar dos objetos heterogéneos como una sola unidad. Un par es un caso específico de un std::tuple con dos elementos.

Si ni T1 ni T2 son un tipo de clase posiblemente calificado cv con destructor no trivial, o array de los mismos, el destructor de pair es trivial.

Contenidos

Parámetros de plantilla

T1, T2 - los tipos de los elementos que almacena el par.

Tipos de miembros

Tipo de miembro Definición
first_type T1
second_type T2

Objetos miembro

Nombre del miembro Tipo
first T1
second T2

Funciones miembro

construye un nuevo pair
(función miembro pública)
asigna los contenidos
(función miembro pública)
(C++11)
intercambia los contenidos
(función miembro pública)

Funciones no miembro

crea un objeto pair del tipo determinado por los tipos de argumento
(plantilla de función)
(eliminado en C++20) (eliminado en C++20) (eliminado en C++20) (eliminado en C++20) (eliminado en C++20) (C++20)
compara lexicográficamente los valores en el pair
(plantilla de función)
especializa el algoritmo std::swap
(plantilla de función)
accede a un elemento de un pair
(plantilla de función)

Clases auxiliares

obtiene el tamaño de un pair
(especialización de plantilla de clase)
obtiene el tipo de los elementos de pair
(especialización de plantilla de clase)
determina el tipo de referencia común de dos pair s
(especialización de plantilla de clase)
determina el tipo común de dos pair s
(especialización de plantilla de clase)
soporte de formato para pair
(especialización de plantilla de clase)

Especializaciones auxiliares

template < class T, class U >

constexpr bool enable_nonlocking_formatter_optimization < std :: pair < T, U >> =
enable_nonlocking_formatter_optimization < T > &&

enable_nonlocking_formatter_optimization < U > ;
(desde C++23)

Esta especialización de std::enable_nonlocking_formatter_optimization permite una implementación eficiente de std::print y std::println para imprimir un objeto pair cuando tanto T como U lo habilitan.

Guías de deducción (desde C++17)

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 2796 C++98 la trivialidad del destructor de pair no estaba especificada especificada

Véase también

(C++11)
implementa un contenedor de tamaño fijo que contiene elementos de posiblemente diferentes tipos
(class template)
(C++11)
crea un tuple de referencias a lvalue o desempaqueta un tuple en objetos individuales
(function template)