Функция make_tuple
Функция make_tuple создает и возвращает
объект tuple, автоматически выводя типы
его элементов из типов переданных аргументов.
В параметры функции мы передаем значения, которые
должны стать элементами кортежа. Количество
параметров может быть произвольным, в том числе
нулевым. Типы элементов выводятся по правилам
распада типов: массивы и функции превращаются
в указатели, а ссылки и cv-квалификаторы
отбрасываются.
Синтаксис
std::make_tuple(value1, value2, ...)
Пример
Давайте создадим кортеж из трех элементов разных типов и выведем их на экран:
#include <iostream>
#include <tuple>
#include <string>
using namespace std;
int main()
{
auto tup = make_tuple(1, 2.5, "abcde");
cout << get<0>(tup) << endl;
cout << get<1>(tup) << endl;
cout << get<2>(tup) << endl;
return 0;
}
Результат выполнения кода:
1
2.5
"abcde"
Пример
Давайте создадим кортеж из чисел и распакуем
его обратно в переменные с помощью функции
tie:
#include <iostream>
#include <tuple>
using namespace std;
int main()
{
auto tup = make_tuple(1, 2, 3);
int a, b, c;
tie(a, b, c) = tup;
cout << a << " " << b << " " << c << endl;
return 0;
}
Результат выполнения кода:
1 2 3
Пример
Давайте создадим кортеж из двух строк и
сравним его с другим кортежем, созданным
функцией make_pair:
#include <iostream>
#include <tuple>
#include <string>
using namespace std;
int main()
{
auto tup1 = make_tuple(string("abcde"), string("12345"));
auto tup2 = make_pair(string("abcde"), string("12345"));
cout << (get<0>(tup1) == tup2.first) << endl;
cout << (get<1>(tup1) == tup2.second) << endl;
return 0;
}
Результат выполнения кода:
1
1
Смотрите также
-
функция
tie,
которая распаковывает кортеж в переменные -
функция
make_pair,
которая создает пару pair -
функция
forward_as_tuple,
которая создает кортеж из ссылок -
функция
any_cast,
которая извлекает значение из any