[C++/en] Tuples in C++

This commit is contained in:
Jaskamal Kainth 2016-01-28 15:26:35 +05:30
parent 32f18cd992
commit c805148618

View File

@ -966,25 +966,24 @@ v.swap(vector<Foo>());
// its elements are accessed by their order in the tuple. // its elements are accessed by their order in the tuple.
// We start with constructing a tuple. // We start with constructing a tuple.
//
// Packing values into tuple // Packing values into tuple
auto first = make_tuple ( 10 , 'A' ) ; auto first = make_tuple( 10 , 'A' ) ;
const int maxN = 1e9; const int maxN = 1e9;
int maxL = 15; const int maxL = 15;
auto second = make_tuple ( maxN , maxL ) ; auto second = make_tuple( maxN , maxL ) ;
// printing elements of 'first' tuple // printing elements of 'first' tuple
cout << get<0>(first) << " " << get<1>(first) << "\n"; //prints : 10 A cout << get<0>(first) << " " << get<1>(first) << "\n"; //prints : 10 A
// printing elements of 'second' tuple // printing elements of 'second' tuple
cout << get<0>(second)<< " " << get<1>(second) << "\n"; // prints: 1000000000 15 cout << get<0>(second) << " " << get<1>(second) << "\n"; // prints: 1000000000 15
// Unpacking tuple into variables // Unpacking tuple into variables
int first_int; int first_int;
char first_char; char first_char;
tie (first_int , first_char ) = first; tie(first_int , first_char ) = first;
cout << first_int << " " << first_char << "\n"; // prints : 10 A cout << first_int << " " << first_char << "\n"; // prints : 10 A
// We can also create tuple like this. // We can also create tuple like this.
@ -992,7 +991,7 @@ cout << first_int << " " << first_char << "\n"; // prints : 10 A
tuple<int , char , double> third ( 11 ,'A' , 3.14141); tuple<int , char , double> third ( 11 ,'A' , 3.14141);
// tuple_size returns number of elements in a tuple (as a constexpr) // tuple_size returns number of elements in a tuple (as a constexpr)
cout << tuple_size< decltype(third)>::value << "\n"; // prints: 3 cout << tuple_size < decltype(third) >::value << "\n"; // prints: 3
// tuple_cat concatenates the elements of all the tuples in the same order. // tuple_cat concatenates the elements of all the tuples in the same order.