Tuple (кортеж) в C++

5 причин, по которым вам следует использовать C++ для цифровой обработки сигналов Программирование и разработка

Работа с любым языком программирования требует использования кортежей, списков, массивов и т. д. Массивы, списки и кортежи предлагают одни и те же услуги с небольшими отличиями. Кортеж — это объект, содержащий упорядоченный список элементов. Это похоже на массив и список, однако они оба изменяемы, но кортеж неизменяем. Неизменяемый объект не может претерпевать никаких изменений во время выполнения. Список и массив можно легко изменять, нарезать или индексировать, поскольку они изменяемы. Но кортеж нельзя модифицировать, нарезать или изменить, поскольку он является неизменяемым объектом. Более того, список и массив могут хранить данные только одного типа, а кортеж может содержать данные нескольких типов. В этом руководстве мы обсудим основную функцию кортежа и то, как его можно использовать в программе на C++.

Что такое Tuple (кортеж) в языке программирования C++?

Кортеж в языке программирования C++ — это объект, содержащий упорядоченный список элементов. Это неизменяемый тип данных, что означает, что значения в кортеже не могут быть изменены в любой момент выполнения. Значение для кортежа дается в круглых () скобках, разделенных запятой, и может быть доступно по ссылке индекса. Существует много функций, которые можно выполнять над кортежем, например, get(), swap(), tuple_size() и т. д. В следующих разделах мы объясним работу четырех функций с помощью примеров.

Пример 1

В этом примере мы создадим кортеж с помощью функции make_tuple(). make_tuple() используется в программе на С++ для присвоения значения кортежу. Значения, которые необходимо присвоить кортежу, должны быть в том же порядке, в котором они были объявлены в кортеже. Давайте посмотрим на прикрепленный ниже код, чтобы понять, как функция make_tuple() работает в программе на C++.

Библиотеки «include <iostream>» и «using namespace std» включены в программу для использования стандартных функций ввода и вывода, таких как cin и cout. ‘include <tuple>’ позволит использовать кортеж в программе. Полный код находится в функции main(). Кортеж ‘t’ объявляется с пятью элементами: <char, int, int, char, float>. Значения для кортежа должны следовать в том же порядке. Как вы можете заметить, (‘a’, 75, 5, ‘z’, 5.5) в функции make_tuple() находятся в том же порядке, что и значения, объявленные для кортежа. После выполнения этого кода вы ничего не получите взамен, что свидетельствует об успешном выполнении.

#include<iostream>
#include<tuple>
using namespace std;
int main()
{
tuple <charintintcharfloat> t;
= make_tuple(‘a’755‘z’5.5);
return ;
}

Проверьте результирующий вывод, показанный на скриншоте ниже:

Читайте также:  Обработка аргументов командной строки C

вывод, показанный на скриншот

Обратите внимание, что программа ничего не возвращает. Выведем значения кортежа.

Пример 2

В этом примере функция get() используется для кортежа для отображения его значений. Значения кортежей можно вывести только с помощью функции get() языка программирования C++. См. код ниже.

Обратите внимание, что мы использовали тот же код и примеры данных, что и в предыдущем примере. С помощью функции make_tuple() значения успешно присваиваются кортежу. Функция get() используется для доступа к значениям кортежа путем обращения к номеру индекса, начиная с 0. Каждый номер индекса присваивается функции get(), и все значения кортежа выводятся с помощью инструкции cout.

#include<iostream>
#include<tuple>
using namespace std;
int main()
{
tuple <charintintcharfloat> t;
= make_tuple(‘a’755‘z’5.5);
int i;
cout << «The values of tuple are : «;
cout << get<>(t) << » « << get<1>(t)<< » « << get<2>(t)
<< » « << get<3>(t)<< » « << get<4>(t)<< endl;
return ;
}

Посмотрите вывод этого кода на скриншоте ниже:

Функция get() выводит значения в том же порядке

Функция get() выводит значения в том же порядке, в котором они были присвоены кортежу.

Пример 3

В этом примере мы продемонстрируем работу функции tuple_size(). На примере примера мы объясним, как получить размер кортежа с помощью функции tuple_size. Проверьте код, приведенный ниже.

Остальные строки кода такие же, как и в предыдущих примерах. Здесь функция tuple_size получит размер кортежа. «decltype» обозначает объявленный тип, используемый для проверки типа данного выражения.

#include<iostream>
#include<tuple>
using namespace std;
int main()
{
tuple <charintintcharfloat> t;
= make_tuple(‘a’755‘z’5.5);
int i;
cout << «The size of tuple is = «;
cout << tuple_size<decltype(t)>::value<< endl;
return ;
}

При выполнении этого кода будет сгенерирован следующий вывод:

Мы присвоили кортежу 5 значений, и функция tuple

Мы присвоили кортежу 5 значений, и функция tuple_size() также вернула размер кортежа 5.

Пример 4

Мы можем объединить кортежи с помощью функции tuple_cat() и создать из них новый кортеж. Здесь мы продемонстрируем использование функции tuple_cat() для объединения двух кортежей.

В приведенном ниже коде мы объявили два кортежа t1 и t2 и присвоили каждому кортежу 3/3 значений. Затем мы использовали функцию tuple_cat(), чтобы объединить оба кортежа и создать из них новый кортеж. После этого мы просто вывели значения всех кортежей с помощью функции get(). Функция tuple_cat() берет кортежи, которые необходимо объединить, объединяет значения, присвоенные каждому кортежу, и создает из него новый кортеж.

Читайте также:  Методы массива JavaScript: как использовать карту и уменьшить

Обратите внимание, что кортежи t1 и t2 имеют 3/3 значения, и мы напечатали каждое значение с помощью функции get(), ссылаясь на индекс 0 на индекс 2. Однако, когда они объединены, общее количество значений будет 6. Итак, нам нужно чтобы напечатать индекс от 0 до 5, чтобы все значения были напечатаны. Посмотрите вывод ниже и обратите внимание, что в кортеже t1 печатаются 3 значения; 3 значения печатаются в кортеже 2. Однако 6 значений печатаются в кортеже 3, поскольку конкатенированные значения в новом кортеже равны 6.

#include<iostream>
#include<tuple>
using namespace std;
int main()
{
tuple <charintfloat> t1(‘a’756.7);
tuple <intcharfloat> t2(10‘t’77.9);
auto t3 = tuple_cat(t1,t2);
cout << «The first tuple contains =  «;
cout << get<>(t1) << » « << get<1>(t1) << » « << get<2>(t1) << endl<<endl;
cout << «The second tuple contains =  «;
cout << get<>(t2) << » « << get<1>(t2) << » « << get<2>(t2) << endl<<endl;
cout << «The new tuple is = «;
cout << get<>(t3) << » « << get<1>(t3) << » «<< get<2>(t3) << » «
<< get<3>(t3) << » «<< get<4>(t3) << » « << get<5>(t3) << endl;
return ;
}

Вот результат:

Обратите внимание, что кортежи t1 и t2 имеют 3

Заключение

Эта статья представляет собой обзор кортежей в языке программирования C++. Кортеж в С++ — это неизменяемый объект, который одновременно содержит значения разных типов данных. Кортежи не могут быть изменены или модифицированы в любой момент выполнения, поскольку они неизменяемы. Над кортежами можно выполнять несколько функций для достижения определенного результата, 4 из них продемонстрированы в этой статье на примерах.

Оцените статью
bestprogrammer.ru
Добавить комментарий

Adblock
detector