make_tuple 函数

从元素值设置为 tuple。

template<class T1, class T2, ..., class TN>
    tuple<V1, V2, ..., VN>
    make_tuple(const T1& t1, const T2& t2, ..., const TN& tN);

参数

  • TN
    第 N 函数的参数类型。

  • tN
    第 N 个函数参数的值。

备注

模板函数返回 tuple<V1, V2, ..., VN>(t1, t2, ..., tN),每个 Vi 类型为 X&,则对应的类型 Ti 是 cv时; reference_wrapper<X>否则,为 Ti。

make_tuple 的一个优点在于存储编译器自动取决于对象的类型,而不必显式指定。 不要使用显式模板参数 (如 make_tuple<int, int>(1, 2) ),当您使用 make_tuple 时,因为不必要地深入的并添加可能导致编译失败的复杂 rvalue 引用问题。

示例

// std_tr1__tuple__make_tuple.cpp 
// compile by using: /EHsc 
#include <tuple> 
#include <iostream> 
 
typedef std::tuple<int, double, int, double> Mytuple; 
int main() 
    { 
    Mytuple c0(0, 1, 2, 3); 
 
// display contents " 0 1 2 3" 
    std::cout << " " << std::get<0>(c0); 
    std::cout << " " << std::get<1>(c0); 
    std::cout << " " << std::get<2>(c0); 
    std::cout << " " << std::get<3>(c0); 
    std::cout << std::endl; 
 
    c0 = std::make_tuple(4, 5, 6, 7); 
 
// display contents " 4 5 6 7" 
    std::cout << " " << std::get<0>(c0); 
    std::cout << " " << std::get<1>(c0); 
    std::cout << " " << std::get<2>(c0); 
    std::cout << " " << std::get<3>(c0); 
    std::cout << std::endl; 
 
    return (0); 
    } 
 

0 1 2 3 4 5 6 7

要求

页眉: <元组>

命名空间: std

请参见

参考

<tuple>

tie 函数