Compartilhar via


make_pair

Uma função de modelo que você pode usar para construir objetos do tipo pair, em que os tipos de componente são automaticamente escolhidos com base nos tipos de dados que são transmitidos 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
    O valor que inicializa o primeiro elemento de pair.

  • Val2
    O valor que inicializa o segundo elemento de pair.

Valor de retorno

O objeto par que é construído: pair<Type1, Type2>(Val1, Val2).

Comentários

make_pair converte objeto do tipo Classe reference_wrapper em tipos de referência e converte funções e matrizes decrescentes em ponteiros.

No objeto pair retornado, Type1 é determinado como se segue:

  • Se o tipo de entrada Type1 for reference_wrapper<X>, o tipo Type1 retornado será X&.

  • Caso contrário, o tipo Type1 retornado será decay<Type1>::type. Se Classe decay não tiver suporte, o tipo Type1 retornado será igual ao tipo de entrada Type1.

O tipo Type2 retornado é determinado de forma semelhante do tipo de entrada Type2.

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 de modelo explícitos, como make_pair<int, int>(1, 2), ao usar make_pair, pois ele é desnecessariamente detalhado e adiciona problemas complexos de referência rvalue que podem causar falha de compilação. Para este exemplo, a sintaxe correta seria make_pair(1, 2)

A função auxiliar make_pair também possibilita passar dois valores a uma função que exige um par como um parâmetro de entrada.

Exemplo

Para obter um exemplo de como usar a função auxiliar make_pair para declarar e inicializar um par, consulte Estrutura pair.

Requisitos

Cabeçalho: <utility>

Namespace: std

Consulte também

Referência

<utility>

Lvalues e Rvalues