make_pair

可以使用构造对象类型 pair的模板 helper 函数,元素类型是以参数形式传递的数据类型。

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

参数

  • _Val1
    值初始化 pair的第一个元素。

  • _Val2
    值初始化 pair的第二个元素。

返回值

构造对对象:pair<类型 1类型 2> (_Val1*,_Val2*)。

备注

make_pair 转换类型 reference_wrapper Class 对象引用类型并将腐朽的数组和函数转换为指针。

在返回的 pair 对象,确定 类型 1 如下所示:

  • 如果输入类型 类型 1 是 reference_wrapper<X>,则返回的类型 类型 1 是 X&。

  • 否则,则返回的类型 类型 1 是 decay<Type1>::type。如果 decay Class 不支持,则返回的类型 类型 1 是否与输入类型 类型 1

该返回的类型 类型 2 从输入类型 类型 2.类似定位

make_pair 的一个优点是存储编译器自动取决于对象的类型,并且不需要显式指定。不要使用显式模板参数 make_pair<int, int>(1, 2) 例如,当您使用 make_pair 时,因为它不必要地详细的并添加复杂性 rvalue 引用可能导致生成失败的问题。

make_pair helper 函数还可以通过两个值传递给需要将对作为输入参数的函数。

示例

有关如何的示例使用帮助器函数声明的 make_pair,并初始化对,请参见 pair Structure

要求

标头: <utility>

命名空间: std

请参见

参考

<utility>

Lvalue和Rvalues

make_pair (STL Samples)