Compartilhar via


make_pair

Uma função auxiliar do modelo que você pode usar para criar objetos do tipo pair, onde os tipos de componente são baseados nos tipos de dados que são passados 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
);

Parâmetros

  • _Val1
    Valor que inicializa o primeiro elemento de pair.

  • _Val2
    Valor que inicializa o segundo elemento de pair.

Valor de retorno

O objeto de pares que é construído: pair<Tipo1, Tipo2> (_Val1*, _Val2*).

Comentários

convertemake_pair de objeto do tipo reference_wrapper Class a tipos e converte de referência que deterioram matrizes e funções para ponteiros.

Em o objeto retornado de pair , Tipo1 é determinado como segue:

  • Se o tipo Tipo1 de entrada é reference_wrapper<X>, o tipo retornado Tipo1 é X&.

  • Caso contrário, o tipo retornado Tipo1 é decay<Type1>::type.Se decay Class não é suportado, o tipo retornado Tipo1 é o mesmo que o tipo Tipo1de entrada.

O tipo retornado é a mesma forma Tipo2 determinado tipo de Tipo2.de entrada

Uma vantagem de make_pair é que os tipos de objetos que estão sendo armazenados são determinados automaticamente pelo compilador e não precisam ser explicitamente especificados.Não use argumentos explícitos de modelo como make_pair<int, int>(1, 2) quando você usa make_pair porque é desnecessariamente detalhado e adiciona os problemas complexos de referência de rvalue que podem causar falha da compilação.

A função auxiliar de make_pair também torna possível passar dois valores a uma função que requer um par como um parâmetro de entrada.

Exemplo

Para um exemplo sobre como usar o make_pair a função auxiliar declarar e inicializar um par, consulte pair Structure.

Requisitos

Cabeçalho: <utility>

namespace: STD

Consulte também

Referência

<utility>

Lvalues e Rvalues

make_pair (STL Samples)