C++ Tuple

C Tuple



Работата с всеки език за програмиране изисква използването на кортежи, списъци, масиви и т.н. Масивите, списъците и кортежите предлагат едни и същи услуги с малки разлики. Кортежът е обект, който съдържа подреден списък от елементи. Това е точно като масив и списък, но и двата са променливи, но кортежът е неизменен. Един неизменен обект не може да претърпи никакви промени по време на изпълнение. Списъкът и масивът могат лесно да бъдат модифицирани, нарязани или индексирани, тъй като са променливи. Но кортежът не може да бъде модифициран, нарязан или променен, тъй като е неизменен обект. Освен това списъкът и масивът могат да съхраняват само един тип данни, но кортежът може да има данни от множество типове. В това ръководство ще обсъдим основната функция на кортежа и как може да се използва в C++ програма.

Какво е кортеж в език за програмиране C++?

Кортеж в език за програмиране c++ е обект, който съдържа подреден списък от елементи. Това е неизменен тип данни, което означава, че стойностите в кортежа не могат да бъдат променяни в нито един момент на изпълнение. Стойността за кортеж е дадена в кръгли () скоби, разделени със запетая, и може да бъде достъпна чрез препратка към индекса. Има много функции, които могат да бъдат изпълнени върху кортеж, т.е. get(), swap(), tuple_size() и т.н. В следващите раздели ще обясним работата на 4-те функции с помощта на примери.

Пример 1:
В този пример ще създадем кортеж с помощта на функцията make_tuple(). Make_tuple() се използва в C++ програма за присвояване на стойност на кортеж. Стойностите, които трябва да бъдат присвоени на кортежа, трябва да са в същия ред, в който са били декларирани в кортежа. Нека видим приложения код по-долу, за да разберем как работи функцията make_tuple() в C++ програма.







Библиотеките „include “ и „using namespace std“ са включени в програмата за използване на стандартните входни и изходни функции като cin и cout. ‘Include ’ ще позволи използването на кортеж в програмата. Пълният код е предоставен във функцията main(). Кортежът „t“ се декларира с пет елемента, . Стойностите за кортежа трябва да следват същия ред. Както можете да забележите, (‘a’, 75, 5, ‘z’, 5.5) във функцията make_tuple() са в същия ред като стойностите, декларирани за кортежа. След като изпълните този код, няма да получите нищо в замяна, което да показва, че изпълнението е успешно.



#include
#include<кортеж>
използвайки пространство от имена std ;
вътр основен ( )
{
кортеж < въглен , вътр , вътр , въглен , плавам > T ;
T = make_tuple ( 'а' , 75 , 5 , 'със' , 5.5 ) ;
връщане 0 ;
}



Вижте резултатния изход, даден на екранната снимка по-долу:





Имайте предвид, че програмата не връща нищо. Нека отпечатаме стойностите на кортежа.



Пример 2:
В този пример функцията get() се използва в кортежа за показване на неговите стойности. Стойностите на кортежите могат да бъдат отпечатани само с функцията get() в езика за програмиране c++. Вижте кода по-долу.

Имайте предвид, че използвахме същия код и примерни данни, както в предишния пример. С помощта на функцията make_tuple() стойностите се присвояват успешно на кортежа. Функцията get() се използва за достъп до стойностите на кортежа чрез позоваване на индексния номер, започващ от 0. Всеки индексен номер се дава на функцията get() и всички стойности на кортежа се отпечатват с оператора cout.

#include
#include<кортеж>
използвайки пространство от имена std ;
вътр основен ( )
{
кортеж < въглен , вътр , вътр , въглен , плавам > T ;
T = make_tuple ( 'а' , 75 , 5 , 'със' , 5.5 ) ;
вътр аз ;
cout << 'Стойностите на кортежа са: ' ;
cout << получавам < 0 > ( T ) << ' ' << получавам < 1 > ( T ) << ' ' << получавам < две > ( T )
<< ' ' << получавам < 3 > ( T ) << ' ' << получавам < 4 > ( T ) << endl ;
връщане 0 ;
}

Вижте резултата от този код в екранната снимка, дадена по-долу:

Функцията get() отпечатва стойностите в същия ред, в който са присвоени на кортежа.

Пример 3:
В този пример ще демонстрираме работата на функцията tuple_size(). С помощта на примерен пример ще обясним как да получите размера на кортеж с помощта на функцията tuple_size. Вижте кода, даден по-долу.

Останалите редове код са същите като използваните в предишните примери. Функцията tuple_size тук ще получи размера на кортежа. „decltype“ означава декларирания тип, използван за изследване на типа на даден израз.

#include
#include<кортеж>
използвайки пространство от имена std ;
вътр основен ( )
{
кортеж < въглен , вътр , вътр , въглен , плавам > T ;
T = make_tuple ( 'а' , 75 , 5 , 'със' , 5.5 ) ;
вътр аз ;
cout << 'Размерът на кортежа е = ' ;
cout << кортеж_размер < decltype ( T ) > :: стойност << endl ;
връщане 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, така че всички стойности да бъдат отпечатани. Вижте резултата по-долу и имайте предвид, че 3 стойности са отпечатани в кортежа t1; В кортеж 2 се отпечатват 3 стойности. От кортеж 3 обаче се отпечатват 6 стойности, тъй като свързаните стойности в новия кортеж са 6.

#include
#include<кортеж>
използвайки пространство от имена std ;
вътр основен ( )
{
кортеж < въглен , вътр , плавам > t1 ( 'а' , 75 , 6.7 ) ;
кортеж < вътр , въглен , плавам > t2 ( 10 , 'T' , 77.9 ) ;
Автоматичен t3 = tuple_cat ( t1,t2 ) ;
cout << „Първият кортеж съдържа =  “ ;
cout << получавам < 0 > ( t1 ) << ' ' << получавам < 1 > ( t1 ) << ' ' << получавам < две > ( t1 ) << endl << endl ;
cout << „Вторият кортеж съдържа =  “ ;
cout << получавам < 0 > ( t2 ) << ' ' << получавам < 1 > ( t2 ) << ' ' << получавам < две > ( t2 ) << endl << endl ;
cout << 'Новият кортеж е =' ;
cout << получавам < 0 > ( t3 ) << ' ' << получавам < 1 > ( t3 ) << ' ' << получавам < две > ( t3 ) << ' '
<< получавам < 3 > ( t3 ) << ' ' << получавам < 4 > ( t3 ) << ' ' << получавам < 5 > ( t3 ) << endl ;
връщане 0 ;
}

Ето резултата:

Заключение

Тази статия е преглед на кортежите в езика за програмиране c++. Кортежът в c++ е неизменен обект, който носи стойностите на различни типове данни едновременно. Кортежите не могат да бъдат променени или модифицирани в която и да е точка на изпълнение, тъй като са неизменни. Няколко функции могат да бъдат изпълнени върху кортежи за постигане на определен резултат, 4 от тях са демонстрирани в тази статия с примерни примери.