make_pair
Une fonction d'assistance de modèle que vous pouvez utiliser pour construire des objets du type pair, où les types de composant sont basés sur les types de données qui sont passés comme paramètres.
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
);
Paramètres
_Val1
Évaluez qui initialise le premier élément d' pair._Val2
Évaluez qui initialise le deuxième élément d' pair.
Valeur de retour
l'objet de paires qui est construit : pair<Type1, Type2> (_Val1*, _Val2*).
Notes
Objet de convertis d'make_pair de type reference_wrapper Class aux types référence et les convertit délabrant des tableaux et des fonctions aux pointeurs.
Dans l'objet retourné d' pair , Type1 est déterminée comme suit :
Si le type d'entrée Type1 est reference_wrapper<X>, le type retourné Type1 est X&.
Sinon, le type retourné Type1 est decay<Type1>::type.Si decay Class n'est pas pris en charge, le type retourné Type1 est le même que le type d'entrée Type1.
Le type retourné Type2 est déterminé à partir de le même type d'entrée Type2.
Un avantage de make_pair est que les types d'objets stockés sont déterminés automatiquement par le compilateur et ne doivent pas être explicitement spécifiés.N'utilisez pas les arguments template explicites tels qu' make_pair<int, int>(1, 2) lorsque vous utilisez make_pair car il est inutilement en clair et ajoute les problèmes complexes de référence rvalue qui peuvent entraîner l'échec de compilation.
La fonction d'assistance d' make_pair permet également de passer deux valeurs à une fonction qui requiert une paire comme paramètre d'entrée.
Exemple
Pour obtenir un exemple sur la manière d'utiliser la fonction d'assistance make_pair pour déclarer et initialiser une paire, consultez pair Structure.
Configuration requise
en-tête : <utility>
l'espace de noms : DST