What is a tuple?
A tuple is an object that can hold a number of elements. The elements can be of different data types. The elements of tuples are initialized as arguments in order in which they will be accessed.
Operations on tuple :-
1. get() :- get() is used to access the tuple values and modify them, it accepts the index and tuple name as arguments to access a particular tuple element.
2. make_tuple() :- make_tuple() is used to assign tuple with values. The values passed should be in order with the values declared in tuple.
CPP
#include<iostream>
#include<tuple> // for tuple
using namespace std;
int main()
{
tuple < char , int , float > geek;
geek = make_tuple( 'a' , 10, 15.5);
cout << "The initial values of tuple are : ";
cout << get<0>(geek) << " " << get<1>(geek);
cout << " " << get<2>(geek) << endl;
get<0>(geek) = 'b' ;
get<2>(geek) = 20.5;
cout << "The modified values of tuple are : ";
cout << get<0>(geek) << " " << get<1>(geek);
cout << " " << get<2>(geek) << endl;
return 0;
}
|
Output:
The initial values of tuple are : a 10 15.5
The modified values of tuple are : b 10 20.5
In the above code, get() modifies the 1st and 3rd value of tuple.
3. tuple_size :- It returns the number of elements present in the tuple.
CPP
#include<iostream>
#include<tuple> // for tuple_size and tuple
using namespace std;
int main()
{
tuple < char , int , float > geek(20, 'g' ,17.5);
cout << "The size of tuple is : ";
cout << tuple_size< decltype (geek)>::value << endl;
return 0;
}
|
Output:
The size of tuple is : 3
4. swap() :- The swap(), swaps the elements of the two different tuples.
CPP
#include<iostream>
#include<tuple> // for swap() and tuple
using namespace std;
int main()
{
tuple < int , char , float > tup1(20, 'g' ,17.5);
tuple < int , char , float > tup2(10, 'f' ,15.5);
cout << "The first tuple elements before swapping are : ";
cout << get<0>(tup1) << " " << get<1>(tup1) << " "
<< get<2>(tup1) << endl;
cout << "The second tuple elements before swapping are : ";
cout << get<0>(tup2) << " " << get<1>(tup2) << " "
<< get<2>(tup2) << endl;
tup1.swap(tup2);
cout << "The first tuple elements after swapping are : ";
cout << get<0>(tup1) << " " << get<1>(tup1) << " "
<< get<2>(tup1) << endl;
cout << "The second tuple elements after swapping are : ";
cout << get<0>(tup2) << " " << get<1>(tup2) << " "
<< get<2>(tup2) << endl;
return 0;
}
|
Output:
The first tuple elements before swapping are : 20 g 17.5
The second tuple elements before swapping are : 10 f 15.5
The first tuple elements after swapping are : 10 f 15.5
The second tuple elements after swapping are : 20 g 17.5
5. tie() :- The work of tie() is to unpack the tuple values into separate variables. There are two variants of tie(), with and without “ignore” , the “ignore” ignores a particular tuple element and stops it from getting unpacked.
CPP
#include<iostream>
#include<tuple> // for tie() and tuple
using namespace std;
int main()
{
int i_val;
char ch_val;
float f_val;
tuple < int , char , float > tup1(20, 'g' ,17.5);
tie(i_val,ch_val,f_val) = tup1;
cout << "The unpacked tuple values (without ignore) are : ";
cout << i_val << " " << ch_val << " " << f_val;
cout << endl;
tie(i_val,ignore,f_val) = tup1;
cout << "The unpacked tuple values (with ignore) are : ";
cout << i_val << " " << f_val;
cout << endl;
return 0;
}
|
Output:
The unpacked tuple values (without ignore) are : 20 g 17.5
The unpacked tuple values (with ignore) are : 20 17.5
6. tuple_cat() :- This function concatenates two tuples and returns a new tuple.
CPP
#include<iostream>
#include<tuple> // for tuple_cat() and tuple
using namespace std;
int main()
{
tuple < int , char , float > tup1(20, 'g' ,17.5);
tuple < int , char , float > tup2(30, 'f' ,10.5);
auto tup3 = tuple_cat(tup1,tup2);
cout << "The new tuple elements in order are : ";
cout << get<0>(tup3) << " " << get<1>(tup3) << " ";
cout << get<2>(tup3) << " " << get<3>(tup3) << " ";
cout << get<4>(tup3) << " " << get<5>(tup3) << endl;
return 0;
}
|
Output:
The new tuple elements in order are : 20 g 17.5 30 f 10.5
This article is contributed by Manjeet Singh .If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.