РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
73 of 815 menu

Класс tuple

Класс tuple представляет собой контейнер фиксированного размера, который может хранить элементы различных типов. В отличие от pair, который хранит ровно два значения, tuple может содержать произвольное количество элементов. Элементы кортежа доступны по индексу с помощью функции get, а также с помощью функций make_tuple, tie и tuple_cat. Для работы с классом необходимо подключить заголовочный файл <tuple>.

Синтаксис

#include <tuple> std::tuple<type1, type2, ...> name; std::make_tuple(value1, value2, ...); std::get<index>(tuple);

Пример

Давайте создадим кортеж из трех элементов разных типов и выведем их на экран:

#include <iostream> #include <tuple> #include <string> using namespace std; int main() { tuple<int, string, double> t = {1, "abcde", 3.14}; cout << get<0>(t) << endl; cout << get<1>(t) << endl; cout << get<2>(t) << endl; return 0; }

Результат выполнения кода:

1 "abcde" 3.14

Пример

Давайте создадим кортеж с помощью функции make_tuple и изменим его элементы:

#include <iostream> #include <tuple> #include <string> using namespace std; int main() { auto t = make_tuple(1, "abcde", 3.14); get<0>(t) = 2; get<1>(t) = "12345"; cout << get<0>(t) << endl; cout << get<1>(t) << endl; cout << get<2>(t) << endl; return 0; }

Результат выполнения кода:

2 12345 3.14

Пример

Давайте распакуем кортеж в отдельные переменные с помощью функции tie:

#include <iostream> #include <tuple> #include <string> using namespace std; int main() { auto t = make_tuple(1, "abcde", 3.14); int a; string b; double c; tie(a, b, c) = t; cout << a << endl; cout << b << endl; cout << c << endl; return 0; }

Результат выполнения кода:

1 "abcde" 3.14

Пример

Давайте объединим два кортежа в один с помощью функции tuple_cat:

#include <iostream> #include <tuple> #include <string> using namespace std; int main() { auto t1 = make_tuple(1, "abcde"); auto t2 = make_tuple(3.14, 'z'); auto t3 = tuple_cat(t1, t2); cout << get<0>(t3) << endl; cout << get<1>(t3) << endl; cout << get<2>(t3) << endl; cout << get<3>(t3) << endl; return 0; }

Результат выполнения кода:

1 "abcde" 3.14 "'z'"

Пример

Давайте узнаем количество элементов в кортеже с помощью tuple_size:

#include <iostream> #include <tuple> #include <string> using namespace std; int main() { tuple<int, string, double> t = {1, "abcde", 3.14}; cout << tuple_size<decltype(t)>::value << endl; return 0; }

Результат выполнения кода:

3

Смотрите также

  • класс pair,
    который хранит два значения
  • класс any,
    который хранит значение любого типа
  • тип int,
    который хранит целые числа
  • тип initializer_list,
    который используется для инициализации контейнеров
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить