make_pair
Eine Vorlagenhilfsfunktion, die Sie verwenden können, um Objekte des Typs pair zu erstellen, in dem die Komponententypen auf Grundlage der Datentypen sind, die als Parameter übergeben werden.
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
);
Parameter
_Val1
Ein Wert, der das erste Element aus pair initialisiert._Val2
Ein Wert, der das zweite Element von pair initialisiert.
Rückgabewert
Das Paarobjekt, das erstellt wird: pair<Type1, Type2> (_Val1*, _Val2*).
Hinweise
make_pair Bekehrtobjekt des Typs reference_wrapper Class auf Verweistypen und zu konvertiert, die Arrays und Funktionen zu Zeigern verfallen.
pair im zurückgegebenen - Objekt wird Type1 bestimmt, wie folgt:
Wenn der Eingabetyp Type1reference_wrapper<X> ist, ist der zurückgegebene Typ Type1X&.
Andernfalls ist der zurückgegebene Typ Type1decay<Type1>::type.Wenn decay Class nicht unterstützt wird, entspricht der zurückgegebene Typ Type1 derselbe wie der Eingabetyp Type1.
Der zurückgegebene Typ Type2 wird aus dem Eingabetyp Type2. bestimmt
Ein Vorteil von make_pair ist, dass die Objekttypen, die gespeichert werden, automatisch vom Compiler bestimmt werden und nicht explizit angegeben werden müssen.Verwenden Sie keine explizit Vorlagenargumente wie make_pair<int, int>(1, 2), wenn Sie make_pair verwenden, da es unnötigerweise detailliert ist und komplexe rvalu-Verweis-Probleme hinzufügt, die möglicherweise Kompilierungsfehler verursacht haben.
Die make_pair Hilfsfunktion ist es auch möglich, zwei Werte in eine Funktion zu übergeben, die ein Paar als Eingabeparameter erfordert.
Beispiel
Ein Beispiel dazu, wie Sie die Hilfsfunktion make_pair verwendet, um ein Paar zu deklarieren und zu initialisieren, finden Sie unter pair Structure.
Anforderungen
Header: <utility>
Namespace: std