Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Se recomienda usar Visual Studio 2017

make_pair

 

Una función de plantilla que se usa para construir objetos de tipo pair, donde los tipos de componente se eligen automáticamente basándose en los tipos de datos que se pasan como parámetros.

template<class Type1, class Type2>    pair<Type1, Type2> make_pair(Type1& Val1, Type2& Val2); template<class Type1, class Type2>    pair<Type1, Type2> make_pair(Type1& Val1, Type2&& Val2);  template<class Type1, class Type2>    pair<Type1, Type2> make_pair(Type1&& Val1, Type2& Val2);  template<class Type1, class Type2>    pair<Type1, Type2> make_pair(Type1&& Val1, Type2&& Val2);

Val1

Valor que inicializa el primer elemento de pair.

Val2

Valor que inicializa el segundo elemento de pair.

El objeto con el par que se construye: pair<Type1, Type2>(Val1, Val2).

make_pair convierte el objeto de tipo reference_wrapper (Clase) en tipos de referencia y convierte las matrices y las funciones que decaen en punteros.

En el objeto pair devuelto, Type1 se determina como sigue:

  • Si el tipo de entrada Type1 es reference_wrapper<X>, el tipo devuelto Type1 es X&.

  • De lo contrario, el tipo devuelto Type1 es decay<Type1>::type. Si decay (Clase) no se admite, el tipo devuelto Type1 es igual que el tipo de entrada Type1.

El tipo devuelto Type2 se determina de igual forma a partir del tipo de entrada Type2.

Una ventaja de make_pair es que el compilador determina automáticamente los tipos de objetos que se almacenan y no tienen que especificarse explícitamente. No utilice los argumentos de plantilla explícitos como make_pair<int, int>(1, 2) cuando use make_pair porque es innecesariamente detallado y agrega problemas complejos de referencia rvalue que pueden producir un error de compilación. En este ejemplo, la sintaxis correcta sería make_pair(1, 2).

La función auxiliar make_pair también permite pasar dos valores a una función que requiera un par como un parámetro de entrada.

Ejemplo

Para obtener un ejemplo sobre cómo usar la función auxiliar make_pair para declarar e inicializar un par, vea pair Structure.

Requisitos

Encabezado: <utility>

Espacio de nombres: std

Mostrar: