tuple::tuple

Constructs a tuple object.

tuple();
explicit tuple(P1, P2, ..., PN);                  // 0 < N
tuple(const tuple& right);
template <class U1, class U2, ..., class UN>
    tuple(const tuple<U1, U2, ..., UN>& right);
template <class U1, class U2>
    tuple(const pair<U1, U2>& right);             // N == 2

Parameters

  • UN
    The type of the Nth copied tuple element.

  • right
    The tuple to copy from.

Remarks

The first constructor constructs an object whose elements are default constructed. The second constructor constructs an object whose elements are copy constructed from the arguments P1, P2, ..., PN with each Pi initializing the element at index i - 1. The third and fourth constructors construct an object whose elements are copy constructed from the corresponding element of right. The fifth constructor constructs an object whose element at index 0 is copy constructed from right.first and whose element at index 1 is copy constructed from right.second.

Example

 

// std_tr1__tuple__tuple_tuple.cpp 
// compile with: /EHsc 
#include <tuple> 
#include <iostream> 
#include <utility> 
 
typedef std::tr1::tuple<int, double, int, double> Mytuple; 
int main() 
    { 
    Mytuple c0(0, 1, 2, 3); 
 
// display contents " 0 1 2 3" 
    std::cout << " " << std::tr1::get<0>(c0); 
    std::cout << " " << std::tr1::get<1>(c0); 
    std::cout << " " << std::tr1::get<2>(c0); 
    std::cout << " " << std::tr1::get<3>(c0); 
    std::cout << std::endl; 
 
    Mytuple c1; 
    c1 = c0; 
 
// display contents " 0 1 2 3" 
    std::cout << " " << std::tr1::get<0>(c1); 
    std::cout << " " << std::tr1::get<1>(c1); 
    std::cout << " " << std::tr1::get<2>(c1); 
    std::cout << " " << std::tr1::get<3>(c1); 
    std::cout << std::endl; 
 
    std::tr1::tuple<char, int> c2(std::make_pair('x', 4)); 
 
// display contents " x 4" 
    std::cout << " " << std::tr1::get<0>(c2); 
    std::cout << " " << std::tr1::get<1>(c2); 
    std::cout << std::endl; 
 
    Mytuple c3(c0); 
 
// display contents " 0 1 2 3" 
    std::cout << " " << std::tr1::get<0>(c3); 
    std::cout << " " << std::tr1::get<1>(c3); 
    std::cout << " " << std::tr1::get<2>(c3); 
    std::cout << " " << std::tr1::get<3>(c3); 
    std::cout << std::endl; 
 
    typedef std::tr1::tuple<int, float, int, float> Mytuple2; 
    Mytuple c4(Mytuple2(4, 5, 6, 7)); 
 
// display contents " 4 5 6 7" 
    std::cout << " " << std::tr1::get<0>(c4); 
    std::cout << " " << std::tr1::get<1>(c4); 
    std::cout << " " << std::tr1::get<2>(c4); 
    std::cout << " " << std::tr1::get<3>(c4); 
    std::cout << std::endl; 
 
    return (0); 
    } 
 

0 1 2 3 0 1 2 3 x 4 0 1 2 3 4 5 6 7

Requirements

Header: <tuple>

Namespace: std::tr1

See Also

Reference

<tuple>

tuple Class