C++ Tuple

C Tuple



Mis tahes programmeerimiskeelega töötamiseks on vaja kasutada kortereid, loendeid, massiive jne. Massiivid, loendid ja korteežid pakuvad samu teenuseid väikeste erinevustega. Korteež on objekt, mis sisaldab üksuste järjestusloendit. See on täpselt nagu massiiv ja loend, kuid mõlemad on muudetavad, kuid korteež on muutumatu. Muutumatu objekt ei saa täitmise ajal muutuda. Loendit ja massiivi saab hõlpsasti muuta, viilutada või indekseerida, kuna need on muudetavad. Korpust ei saa aga muuta, tükeldada ega muuta, kuna see on muutumatu objekt. Veelgi enam, loend ja massiiv võivad salvestada ainult ühte tüüpi andmeid, kuid korteež võib sisaldada mitut tüüpi andmeid. Selles juhendis käsitleme korteeži põhifunktsiooni ja selle kasutamist c++ programmis.

Mis on korteež C++ programmeerimiskeeles?

C++ programmeerimiskeele korteež on objekt, mis sisaldab järjestatud üksuste loendit. See on muutumatu andmetüüp, mis tähendab, et korteeži väärtusi ei saa üheski täitmispunktis muuta. Korpuse väärtus on toodud komaga eraldatud ümarsulgudes () ja sellele pääseb juurde indeksi viitega. Korteel saab sooritada palju funktsioone, st get(), swap(), korteeži_suurus() jne. Järgmistes osades selgitame näidete abil nelja funktsiooni tööd.

Näide 1:
Selles näites loome korteeži, kasutades funktsiooni make_tuple(). Funktsiooni make_tuple() kasutatakse c++ programmis korteeži väärtuse määramiseks. Korpusele omistatavad väärtused peaksid olema samas järjekorras, nagu need korteežis deklareeriti. Vaatame allolevat lisatud koodi, et mõista, kuidas funktsioon make_tuple() töötab c++ programmis.







Teegid 'include ' ja 'using namespace std' on programmi kaasatud, et kasutada standardseid sisend- ja väljundfunktsioone, nagu cin ja cout. 'Kaasa ' võimaldab programmis kasutada korteeži. Täielik kood on esitatud funktsioonis main(). Korteež ‘t’ on deklareeritud viie elemendiga . Korpuse väärtused peavad järgima sama järjekorda. Nagu näete, on funktsiooni make_tuple() väärtused ('a', 75, 5, 'z', 5.5) samas järjekorras kui korteeži jaoks deklareeritud väärtused. Pärast selle koodi täitmist ei saa te midagi, mis viitaks täitmise õnnestumisele.



#include
#include
kasutades nimeruum std ;
int peamine ( )
{
mitmekordne < char , int , int , char , ujuk > t ;
t = make_tuple ( 'a' , 75 , 5 , 'koos' , 5.5 ) ;
tagasi 0 ;
}



Kontrollige alloleval ekraanipildil antud väljundit:





Pange tähele, et programm ei tagasta midagi. Trükime välja korteeži väärtused.



Näide 2:
Selles näites kasutatakse korteis selle väärtuste kuvamiseks funktsiooni get(). Korteeži väärtusi saab printida ainult c++ programmeerimiskeele funktsiooniga get(). Vaadake allolevat koodi.

Pange tähele, et kasutasime sama koodi ja näidisandmeid nagu eelmises näites. Funktsiooni make_tuple() abil omistatakse väärtused korteile edukalt. Funktsiooni get() kasutatakse korteeži väärtustele juurde pääsemiseks, viidates 0-st algavale indeksinumbrile. Iga indeksi number antakse funktsioonile get() ja kõik korteeži väärtused trükitakse koos lausega cout.

#include
#include
kasutades nimeruum std ;
int peamine ( )
{
mitmekordne < char , int , int , char , ujuk > t ;
t = make_tuple ( 'a' , 75 , 5 , 'koos' , 5.5 ) ;
int i ;
cout << 'Korteri väärtused on:' ;
cout << saada < 0 > ( t ) << ' ' << saada < 1 > ( t ) << ' ' << saada < kaks > ( t )
<< ' ' << saada < 3 > ( t ) << ' ' << saada < 4 > ( t ) << endl ;
tagasi 0 ;
}

Vaadake selle koodi väljundit alloleval ekraanipildil:

Funktsioon get() prindib väärtused samas järjekorras, nagu need on määratud korteile.

Näide 3:
Selles näites demonstreerime funktsiooni tuple_size() tööd. Näidisnäite abil selgitame, kuidas funktsiooni tuple_size abil saada korteeži suurust. Tutvuge allpool toodud koodiga.

Ülejäänud koodiread on samad, mida kasutati eelmistes näidetes. Siin olev funktsioon tuple_size saab korteeži suuruse. Decltype tähistab deklareeritud tüüpi, mida kasutatakse antud avaldise tüübi uurimiseks.

#include
#include
kasutades nimeruum std ;
int peamine ( )
{
mitmekordne < char , int , int , char , ujuk > t ;
t = make_tuple ( 'a' , 75 , 5 , 'koos' , 5.5 ) ;
int i ;
cout << 'Korteri suurus on =' ;
cout << tuple_size < decltype ( t ) > :: väärtus << endl ;
tagasi 0 ;
}

Selle koodi käivitamisel genereeritakse järgmine väljund:

Määrasime korteežile 5 väärtust ja funktsioon tuple_size() tagastas ka 5. korteeži suuruse.

Näide 4:
Kortereid saame liita funktsiooni tuple_cat() abil ja luua neist uue korteeži. Siin demonstreerime funktsiooni tuple_cat() kasutamist kahe korteeži ühendamiseks.

Allpool toodud koodis deklareerisime kaks korterit t1 ja t2 ning määrasime igale korteile 3/3 väärtust. Seejärel kasutasime funktsiooni tuple_cat(), et ühendada mõlemad korteežid ja luua neist uus korteež. Pärast seda printisime lihtsalt funktsiooni get() abil kõigi korteežide väärtused. Funktsioon tuple_cat() võtab aheldamist vajavad korteid, ühendab igale korteile määratud väärtused ja loob sellest uue korteeži.

Pange tähele, et korterite t1 ja t2 väärtused on 3/3 ja me printisime iga väärtuse funktsiooni get() abil, viidates indeksist 0 indeksile 2. Kui aga need on ühendatud, on koguväärtused 6. Seega on meil vaja et printida indeks vahemikus 0 kuni 5, nii et kõik väärtused prinditakse. Vaadake allolevat väljundit ja pange tähele, et korteile t1 trükitakse 3 väärtust; Korterile 2 prinditakse 3 väärtust. Korteri 3 puhul trükitakse aga 6 väärtust, kuna uues korteis on ühendatud väärtused 6.

#include
#include
kasutades nimeruum std ;
int peamine ( )
{
mitmekordne < char , int , ujuk > t1 ( 'a' , 75 , 6.7 ) ;
mitmekordne < int , char , ujuk > t2 ( 10 , 't' , 77.9 ) ;
auto t3 = tuple_cat ( t1, t2 ) ;
cout << 'Esimene korteež sisaldab =  ' ;
cout << saada < 0 > ( t1 ) << ' ' << saada < 1 > ( t1 ) << ' ' << saada < kaks > ( t1 ) << endl << endl ;
cout << 'Teine korteež sisaldab =  ' ;
cout << saada < 0 > ( t2 ) << ' ' << saada < 1 > ( t2 ) << ' ' << saada < kaks > ( t2 ) << endl << endl ;
cout << 'Uus korteež on =' ;
cout << saada < 0 > ( t3 ) << ' ' << saada < 1 > ( t3 ) << ' ' << saada < kaks > ( t3 ) << ' '
<< saada < 3 > ( t3 ) << ' ' << saada < 4 > ( t3 ) << ' ' << saada < 5 > ( t3 ) << endl ;
tagasi 0 ;
}

Siin on väljund:

Järeldus

See artikkel on ülevaade c++ programmeerimiskeele korteežidest. C++ korteež on muutumatu objekt, mis kannab samaaegselt erinevate andmetüüpide väärtusi. Kortereid ei saa üheski täitmise punktis muuta ega muuta, kuna need on muutumatud. Kindla tulemuse saavutamiseks saab korteežidel täita mitmeid funktsioone, neist 4 on käesolevas artiklis näidisnäidetega demonstreeritud.