Что такое кортеж в языке программирования C++?
Кортеж в языке программирования C++ — это объект, содержащий упорядоченный список элементов. Это неизменный тип данных, что означает, что значения в кортеже не могут быть изменены в любой момент выполнения. Значение для кортежа дается в круглых () скобках, разделенных запятой, и может быть доступно по ссылке индекса. Существует множество функций, которые можно выполнять с кортежем, например, get(), swap(), tuple_size() и т. д. В следующих разделах мы объясним работу четырех функций с помощью примеров.
Пример 1:
В этом примере мы создадим кортеж с помощью функции make_tuple(). make_tuple() используется в программе на С++ для присвоения значения кортежу. Значения, которые необходимо присвоить кортежу, должны быть в том же порядке, в котором они были объявлены в кортеже. Давайте посмотрим на прикрепленный ниже код, чтобы понять, как функция make_tuple() работает в программе на C++.
Библиотеки «include
#include
#include<кортеж>
с использованием пространство имен станд. ;
инт главный ( )
{
кортеж < уголь , инт , инт , уголь , плавать > т ;
т знак равно make_tuple ( а , 75 , 5 , 'С' , 5,5 ) ;
возвращаться 0 ;
}
Проверьте результирующий вывод, показанный на скриншоте ниже:
Обратите внимание, что программа ничего не возвращает. Выведем значения кортежа.
Пример 2:
В этом примере функция get() используется для кортежа для отображения его значений. Значения кортежей можно вывести только с помощью функции get() языка программирования C++. См. код ниже.
Обратите внимание, что мы использовали тот же код и примеры данных, что и в предыдущем примере. С помощью функции make_tuple() значения успешно присваиваются кортежу. Функция get() используется для доступа к значениям кортежа путем обращения к номеру индекса, начиная с 0. Каждый номер индекса присваивается функции get(), и все значения кортежа выводятся с помощью инструкции cout.
#include#include<кортеж>
с использованием пространство имен станд. ;
инт главный ( )
{
кортеж < уголь , инт , инт , уголь , плавать > т ;
т знак равно make_tuple ( а , 75 , 5 , 'С' , 5,5 ) ;
инт я ;
cout << «Значения кортежа:» ;
cout << получить < 0 > ( т ) << ' ' << получить < 1 > ( т ) << ' ' << получить < два > ( т )
<< ' ' << получить < 3 > ( т ) << ' ' << получить < 4 > ( т ) << конец ;
возвращаться 0 ;
}
Посмотрите вывод этого кода на скриншоте ниже:
Функция get() выводит значения в том же порядке, в котором они были присвоены кортежу.
Пример 3:
В этом примере мы продемонстрируем работу функции tuple_size(). На примере примера мы объясним, как получить размер кортежа с помощью функции tuple_size. Проверьте код, приведенный ниже.
Остальные строки кода такие же, как и в предыдущих примерах. Здесь функция tuple_size получит размер кортежа. «decltype» обозначает объявленный тип, используемый для проверки типа данного выражения.
#include#include<кортеж>
с использованием пространство имен станд. ;
инт главный ( )
{
кортеж < уголь , инт , инт , уголь , плавать > т ;
т знак равно make_tuple ( а , 75 , 5 , 'С' , 5,5 ) ;
инт я ;
cout << 'Размер кортежа =' ;
cout << tuple_size < decltype ( т ) > :: ценность << конец ;
возвращаться 0 ;
}
При выполнении этого кода будет сгенерирован следующий вывод:
Мы присвоили кортежу 5 значений, и функция tuple_size() также вернула размер кортежа 5.
Пример 4:
Мы можем объединить кортежи с помощью функции tuple_cat() и создать из них новый кортеж. Здесь мы продемонстрируем использование функции tuple_cat() для объединения двух кортежей.
В приведенном ниже коде мы объявили два кортежа t1 и t2 и присвоили каждому кортежу 3/3 значений. Затем мы использовали функцию tuple_cat(), чтобы объединить оба кортежа и создать из них новый кортеж. После этого мы просто вывели значения всех кортежей с помощью функции get(). Функция tuple_cat() берет кортежи, которые необходимо объединить, объединяет значения, присвоенные каждому кортежу, и создает из него новый кортеж.
Обратите внимание, что кортежи t1 и t2 имеют 3/3 значения, и мы напечатали каждое значение с помощью функции get(), ссылаясь на индекс 0 на индекс 2. Однако, когда они объединены, общее количество значений будет 6. Итак, нам нужно чтобы напечатать индекс от 0 до 5, чтобы все значения были напечатаны. Посмотрите вывод ниже и обратите внимание, что в кортеже t1 печатаются 3 значения; 3 значения печатаются в кортеже 2. Однако 6 значений печатаются в кортеже 3, поскольку конкатенированные значения в новом кортеже равны 6.
#include#include<кортеж>
с использованием пространство имен станд. ;
инт главный ( )
{
кортеж < уголь , инт , плавать > т1 ( а , 75 , 6.7 ) ;
кортеж < инт , уголь , плавать > т2 ( 10 , 'т' , 77,9 ) ;
авто т3 знак равно tuple_cat ( t1, t2 ) ;
cout << 'Первый кортеж содержит = ' ;
cout << получить < 0 > ( т1 ) << ' ' << получить < 1 > ( т1 ) << ' ' << получить < два > ( т1 ) << конец << конец ;
cout << 'Второй кортеж содержит = ' ;
cout << получить < 0 > ( т2 ) << ' ' << получить < 1 > ( т2 ) << ' ' << получить < два > ( т2 ) << конец << конец ;
cout << 'Новый кортеж =' ;
cout << получить < 0 > ( т3 ) << ' ' << получить < 1 > ( т3 ) << ' ' << получить < два > ( т3 ) << ' '
<< получить < 3 > ( т3 ) << ' ' << получить < 4 > ( т3 ) << ' ' << получить < 5 > ( т3 ) << конец ;
возвращаться 0 ;
}
Вот результат:
Вывод
Эта статья представляет собой обзор кортежей в языке программирования C++. Кортеж в С++ — это неизменяемый объект, который одновременно содержит значения разных типов данных. Кортежи не могут быть изменены или модифицированы в любой момент выполнения, поскольку они неизменяемы. Над кортежами можно выполнять несколько функций для достижения определенного результата, 4 из них продемонстрированы в этой статье на примерах.