Sdílet prostřednictvím


make_pair

Podpůrná funkce šablony, můžete vytvořit objekty typu pair, kde typy komponent jsou založeny na datových typů, které jsou předány jako parametry.

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
);

Parametry

  • _Val1
    Hodnota, která inicializuje první element pair.

  • _Val2
    Hodnota, která inicializuje druhého prvku pair.

Vrácená hodnota

Pár objekt, který je vyroben: pair<Type1, typ2> (_hodn1, _Val2).

Poznámky

make_pairPřevede objekt typu reference_wrapper Class referenční typy a převede slábnoucí pole a funkce ukazatelů.

V vráceného pair objektu, Type1 se určí takto:

  • Pokud vstupní typ Type1 je reference_wrapper<X>, vrácený typ Type1 je X&.

  • Jinak vrácený typ Type1 je decay<Type1>::type.Pokud decay Class není podporována vrácený typ Type1 je stejný jako typ vstupu Type1.

Vrácený typ typ2 se podobně určí typ vstupu typ2.

Výhodou make_pair určuje kompilátor automaticky a není nutné explicitně zadat typy objektů, které jsou právě uloženy.Nepoužívejte explicitní šablony argumentů jako make_pair<int, int>(1, 2) při použití make_pair , protože je zbytečně podrobné a přidá složité rvalue odkaz problémy, které mohou způsobit selhání kompilace.

make_pair Podpůrná funkce také umožňuje předat funkci, která vyžaduje pár jako vstupní parametr dvě hodnoty.

Příklad

Příklad jak podpůrná funkce make_pair deklarovat a inicializovat pár, viz pair Structure.

Požadavky

Záhlaví: <utility>

Obor názvů: std

Viz také

Referenční dokumentace

<utility>

Lvalues a Rvalues

make_pair (STL Samples)