In this C++ tutorial, you will learn about Tuples, how to declare a tuple, initialize a tuple, and some basic operations on tuples, with example programs.
C++ Tuple
C++ Tuple is an ordered collection of elements. We can neither add new elements to a tuple, nor delete existing elements from a tuple.
The elements in a Tuple can be of different datatypes. The datatypes of the elements are specified in the declaration though.
C++ Tuple Tutorials
The following are the list of tutorials, that provide syntax and well explained examples for each of the operations with a Tuple.
- C++ Declare a Tuple
- C++ Initialise a Tuple
- C++ Tuple Size
- C++ Swap Elements between two Tuples
- C++ Unpack Tuple Elements into Separate Variables
- C++ Concatenate Tuples
Include Tuple Class
When working with Tuples in C++, include the tuple class in the program, using the following include statement at the top of program.
#include<tuple>
Declare a Tuple
tuple keyword is used to declare a Tuple in C++. Specify the datatypes of elements, in order, in angular brackets after tuple keyword.
In the following example, we declared a Tuple with three elements of type int, string and boolean respectively.
tuple<int, string, bool> fruit;
Initialise a Tuple
In the tuple declaration, provide the elements as comma separated values after the tuple name in parenthesis.
tuple<int, string, bool> fruit1(3, "apple", true);
make_tuple() function can also be used to assign a tuple with values for elements.
tuple<int, string, bool> fruit; fruit = make_tuple(12, "apple", true);
Get Element from Tuple
get() function takes an integer for index, and returns the element from Tuple at the given index.
C++ Program
#include <iostream> #include<tuple> using namespace std; int main() { tuple<int, string, bool> fruit; fruit = make_tuple(12, "apple", true); cout << get<1>(fruit) << endl; }
Output
apple Program ended with exit code: 0
Set Element in Tuple
Access the element using get() function and index, and assign a new value to the element.
C++ Program
#include <iostream> #include<tuple> using namespace std; int main() { tuple<int, string, bool> fruit; fruit = make_tuple(12, "apple", true); get<1>(fruit) = "banana"; cout << get<1>(fruit) << endl; }
Output
banana Program ended with exit code: 0
Tuple Size
tuple_size is used to get the number of elements in the given Tuple.
C++ Program
#include <iostream> #include<tuple> using namespace std; int main() { tuple<int, string, bool> fruit; fruit = make_tuple(12, "apple", true); cout << "Tuple Size : " << tuple_size<decltype(fruit)>::value << endl; }
Output
Tuple Size : 3 Program ended with exit code: 0
Swap Elements of Tuples
swap() function swaps the elements between the given two tuples.
C++ Program
#include <iostream> #include<tuple> using namespace std; int main() { tuple<int, string, bool> fruit1(3, "apple", true); tuple<int, string, bool> fruit2(7, "banana", true); swap(fruit1, fruit2); cout << "fruit1 : " << get<0>(fruit1) << " " << get<1>(fruit1) << " " << get<2>(fruit1) << endl; cout << "fruit2 : " << get<0>(fruit2) << " " << get<1>(fruit2) << " " << get<2>(fruit2) << endl; }
Output
fruit1 : 7 banana 1 fruit2 : 3 apple 1 Program ended with exit code: 0
Unpack Elements of Tuple to Variables
tie() function unpacks the elements of a Tuple to variables.
C++ Program
#include <iostream> #include<tuple> using namespace std; int main() { tuple<int, string, bool> fruit(3, "apple", true); int id; string name; bool isAvailable; tie(id, name, isAvailable) = fruit; cout << "id : " << id << endl; cout << "name : " << name << endl; cout << "isAvailable : " << isAvailable << endl; }
Output
id : 3 name : apple isAvailable : 1 Program ended with exit code: 0
Concatenate Tuples
tuple_cat() function takes two Tuples, concatenate them, and returns a new tuple with the elements from the two tuples.
C++ Program
#include <iostream> #include<tuple> using namespace std; int main() { tuple<int, string, bool> fruit1(3, "apple", true); tuple<int, string, bool> fruit2(7, "banana", true); auto fruits = tuple_cat(fruit1, fruit2); cout << "fruits : " << get<0>(fruits) << " " << get<1>(fruits) << " " << get<2>(fruits) << " " << get<3>(fruits) << " " << get<4>(fruits) << " " << get<5>(fruits) << endl; }
Output
fruits : 3 apple 1 7 banana 1 Program ended with exit code: 0
Conclusion
In this C++ Tutorial, we learned what a Tuple is in C++, and different Tuple Operations with examples.