C++ Tuple

C Tuple



Norint dirbti su bet kuria programavimo kalba, reikia naudoti eilutes, sąrašus, masyvus ir kt. Masyvai, sąrašai ir kortelės siūlo tas pačias paslaugas su nedideliais skirtumais. Kortelė yra objektas, kuriame yra prekių eilės sąrašas. Tai lygiai taip pat kaip masyvas ir sąrašas, tačiau jie abu yra kintami, o eilutė yra nekintanti. Vykdymo metu nekintamas objektas negali būti pakeistas. Sąrašą ir masyvą galima lengvai modifikuoti, supjaustyti arba indeksuoti, nes jie yra keičiami. Tačiau rinkinio negalima keisti, supjaustyti ar pakeisti, nes tai yra nekintantis objektas. Be to, sąrašas ir masyvas gali saugoti tik vieno tipo duomenis, tačiau kortoje gali būti kelių tipų duomenys. Šiame vadove aptarsime pagrindinę eilutės funkciją ir kaip ją galima naudoti c++ programoje.

Kas yra kortelė C++ programavimo kalboje?

C++ programavimo kalbos rinkinys yra objektas, kuriame yra sutvarkytas elementų sąrašas. Tai yra nekintantis duomenų tipas, o tai reiškia, kad eilėje esančių reikšmių negalima keisti bet kuriuo vykdymo tašku. Eilės reikšmė pateikiama apvaliuose () skliausteliuose, atskirtuose kableliu, ir ją galima pasiekti rodyklės nuoroda. Yra daug funkcijų, kurias galima atlikti su kortele, t.y. get(), swap(), tuple_size() ir tt Tolesniuose skyriuose pavyzdžiais paaiškinsime 4 funkcijų veikimą.

1 pavyzdys:
Šiame pavyzdyje mes sukursime seką naudodami make_tuple() funkciją. Make_tuple() naudojamas c++ programoje, norint priskirti kortelei reikšmę. Reikšmės, kurias reikia priskirti sekai, turi būti tokia pat tvarka, kokia jos buvo deklaruotos sekoje. Pažiūrėkime toliau pateiktą kodą, kad suprastume, kaip funkcija make_tuple () veikia c++ programoje.







„Include “ ir „using namespace std“ bibliotekos įtrauktos į programą, kad būtų galima naudoti standartines įvesties ir išvesties funkcijas, tokias kaip cin ir cout. „Include “ leis programoje naudoti eilutę. Visas kodas pateikiamas funkcijoje main(). Eilė „t“ deklaruojama su penkiais elementais: . Kortelės reikšmės turi atitikti tą pačią tvarką. Kaip matote, ('a', 75, 5, 'z', 5.5) funkcijoje make_tuple() yra ta pačia tvarka kaip ir kortelės reikšmės. Įvykdę šį kodą negausite nieko mainais, rodančio, kad vykdymas buvo sėkmingas.



#include
#įtraukti
naudojant vardų erdvė std ;
tarpt pagrindinis ( )
{
kortele < char , tarpt , tarpt , char , plūdė > t ;
t = make_tuple ( 'a' , 75 , 5 , 'Su' , 5.5 ) ;
grąžinti 0 ;
}



Patikrinkite gautą išvestį, pateiktą žemiau esančioje ekrano kopijoje:





Atminkite, kad programa nieko negrąžina. Išspausdinkime kortelės reikšmes.



2 pavyzdys:
Šiame pavyzdyje funkcija get() naudojama sekoje, kad būtų rodomos jos reikšmės. Kortelių reikšmės gali būti spausdinamos tik naudojant funkciją get() c++ programavimo kalba. Žiūrėkite žemiau esantį kodą.

Atminkite, kad naudojome tą patį kodą ir duomenų pavyzdžius, kaip ir ankstesniame pavyzdyje. Naudojant make_tuple() funkciją, reikšmės sėkmingai priskiriamos kortelei. Funkcija get() naudojama norint pasiekti eilutės reikšmes, nurodant indekso numerį, prasidedantį nuo 0. Kiekvienas indekso numeris suteikiamas funkcijai get() ir visos eilės reikšmės atspausdinamos su cout teiginiu.

#include
#įtraukti
naudojant vardų erdvė std ;
tarpt pagrindinis ( )
{
kortele < char , tarpt , tarpt , char , plūdė > t ;
t = make_tuple ( 'a' , 75 , 5 , 'Su' , 5.5 ) ;
tarpt i ;
cout << 'Tuple reikšmės yra: ' ;
cout << gauti < 0 > ( t ) << ' ' << gauti < 1 > ( t ) << ' ' << gauti < du > ( t )
<< ' ' << gauti < 3 > ( t ) << ' ' << gauti < 4 > ( t ) << endl ;
grąžinti 0 ;
}

Patikrinkite šio kodo išvestį toliau pateiktoje ekrano kopijoje:

Funkcija get() spausdina reikšmes ta pačia tvarka, kokia jos priskiriamos kortelei.

3 pavyzdys:
Šiame pavyzdyje parodysime funkcijos tuple_size() veikimą. Pavyzdinio pavyzdžio pagalba paaiškinsime, kaip gauti kortelės dydį naudojant funkciją tuple_size. Patikrinkite žemiau pateiktą kodą.

Likusios kodo eilutės yra tokios pačios, kaip ir ankstesniuose pavyzdžiuose. Funkcija tuple_size čia gaus kortelės dydį. „Decltype“ reiškia deklaruotą tipą, naudojamą tam tikros išraiškos tipui ištirti.

#include
#įtraukti
naudojant vardų erdvė std ;
tarpt pagrindinis ( )
{
kortele < char , tarpt , tarpt , char , plūdė > t ;
t = make_tuple ( 'a' , 75 , 5 , 'Su' , 5.5 ) ;
tarpt i ;
cout << 'Tuple dydis yra =' ;
cout << tuple_size < decltype ( t ) > :: vertė << endl ;
grąžinti 0 ;
}

Kai vykdysite šį kodą, bus sugeneruota ši išvestis:

Kortelei priskyrėme 5 reikšmes, o funkcija tuple_size() taip pat grąžino 5 eilutės dydį.

4 pavyzdys:
Mes galime sujungti eilutes naudodami funkciją tuple_cat() ir sukurti iš jų naują seką. Čia parodysime, kaip funkcija tuple_cat() naudojama dviejų kortelių sujungimui.

Žemiau pateiktame kode mes paskelbėme dvi korteles t1 ir t2 ir kiekvienai kortelei priskyrėme 3/3 reikšmių. Tada naudojome funkciją tuple_cat(), kad sujungtume abi eilutes ir sukurtume iš jų naują seką. Po to mes tiesiog išspausdinome visų eilučių reikšmes naudodami get () funkciją. Funkcija tuple_cat() paima eilutes, kurias reikia sujungti, sujungia kiekvienai kortelei priskirtas reikšmes ir sukuria iš jos naują seką.

Atkreipkite dėmesį, kad kortelės t1 ir t2 turi 3/3 reikšmių ir kiekvieną reikšmę atspausdinome naudodami get() funkciją, nurodydami nuo indekso 0 iki indekso 2. Tačiau kai jie sujungiami, bendros reikšmės bus 6. Taigi, mums reikia spausdinti indeksą nuo 0 iki 5, kad būtų išspausdintos visos reikšmės. Patikrinkite toliau pateiktą išvestį ir atkreipkite dėmesį, kad t1 kortelėje atspausdintos 3 reikšmės; 2 eilutėje išspausdinamos 3 reikšmės. Tačiau iš 3 eilutės atspausdinamos 6 reikšmės, nes naujoje sekoje sujungtos reikšmės yra 6.

#include
#įtraukti
naudojant vardų erdvė std ;
tarpt pagrindinis ( )
{
kortele < char , tarpt , plūdė > t1 ( 'a' , 75 , 6.7 ) ;
kortele < tarpt , char , plūdė > t2 ( 10 , 't' , 77.9 ) ;
automatinis t3 = tuple_cat ( t1, t2 ) ;
cout << 'Pirmoje eilutėje yra =  ' ;
cout << gauti < 0 > ( t1 ) << ' ' << gauti < 1 > ( t1 ) << ' ' << gauti < du > ( t1 ) << endl << endl ;
cout << 'Antroje eilutėje yra =  ' ;
cout << gauti < 0 > ( t2 ) << ' ' << gauti < 1 > ( t2 ) << ' ' << gauti < du > ( t2 ) << endl << endl ;
cout << 'Nauja eilutė yra =' ;
cout << gauti < 0 > ( t3 ) << ' ' << gauti < 1 > ( t3 ) << ' ' << gauti < du > ( t3 ) << ' '
<< gauti < 3 > ( t3 ) << ' ' << gauti < 4 > ( t3 ) << ' ' << gauti < 5 > ( t3 ) << endl ;
grąžinti 0 ;
}

Štai išvestis:

Išvada

Šis straipsnis yra c++ programavimo kalbos eilučių apžvalga. C++ eilutė yra nekintantis objektas, kuris vienu metu turi skirtingų duomenų tipų reikšmes. Kortelės negali būti keičiamos ar modifikuojamos jokiame vykdymo taške, nes jos yra nekintančios. Norint pasiekti tam tikrą rezultatą, kortelėse gali būti atliekamos kelios funkcijos, 4 iš jų pavaizduotos šiame straipsnyje su pavyzdžiais.