Udostępnij za pośrednictwem


make_pair

Funkcja pomocnicza szablon, którego można używać do konstruowania obiektów typu pair, gdzie typów składników są oparte na typy danych, które są przekazywane 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
    Wartość, która inicjuje pierwszego elementu pair.

  • _Val2
    Wartość, która inicjuje drugi element pair.

Wartość zwracana

Obiekt pary, która jest skonstruowana: pair<Type1, Type2> (_Val1, _Val2).

Uwagi

make_pairKonwertuje obiekt typu reference_wrapper Class do typów referencyjnych i konwertuje rozkład tablic i funkcji do wskaźników.

W zwracanych pair obiektu, Type1 określa się następująco:

  • Jeśli typ danych wejściowych Type1 jest reference_wrapper<X>, zwracany typ Type1 jest X&.

  • W przeciwnym razie zwracany typ Type1 jest decay<Type1>::type.Jeśli decay Class nie jest obsługiwana, zwracany typ Type1 jest taka sama, jak typ danych wejściowych Type1.

Zwracany typ Type2 podobnie zależy od typu wejściowego Type2.

Jedną z zalet make_pair jest, że typy obiektów, które są przechowywane są określane automatycznie przez kompilator i nie muszą być jawnie określony.Nie używaj jawnej szablonów takich jak make_pair<int, int>(1, 2) użycie make_pair ponieważ jest niepotrzebnie verbose i dodaje złożonych r-wartości odniesienia problemy, które mogą spowodować błąd kompilacji.

make_pair Funkcja helper również pozwala na dwie wartości są przekazywane do funkcji, która wymaga parę jako parametr wejściowy.

Przykład

Na przykład o tym, jak korzystać z funkcji pomocnika make_pair zadeklarować i zainicjować parę, zobacz pair Structure.

Wymagania

Nagłówek: <utility>

Przestrzeń nazw: std

Zobacz też

Informacje

<utility>

Lvalues i Rvalues

make_pair (STL Samples)