Повезивање структуре у Ц++

Povezivane Strukture U C



Повезивање структуре вам омогућава да издвојите елементе из структуре или класе и доделите их различитим променљивим без приступа сваком члану посебно. Повезивање структуре се користи да елиминише потребу за ручним издвајањем елемената и побољшава читљивост и концизност кода дозвољавајући истовремено распакивање бројних елемената структуре или класе у различите варијабле. У овом водичу ћемо разговарати о раду, синтакси и примерима повезивања структуре у Ц++.

Шта је структурирано везивање у Ц++?

Повезивање структуре је функција Ц++ која је додата у Ц++17 која такође омогућава декомпозицију структуре или тупле на појединачне променљиве, побољшавајући сажетост кода. Може се користити да би се синтакса приступа члановима структуре учинила једноставнијом и смањила могућност грешака изазваних грешкама у куцању или нетачним индексирањем.

Синтакса







Синтакса повезивања структуре у Ц++ је следећа:



ауто [ вар1 , вар2 , ... ] = израз ;

У синтакси за повезивање структуре у Ц++, где су „вар1“ и „вар2“ имена променљивих, а „екпрессион“ је израз који даје структуру или класу. Користимо ауто кључне речи за декларисање променљивих које се аутоматски креирају.



Модификатори

Модификатори се могу користити у пару са структурираним везама. Њихова синтакса је наведена у наставку:





ауто & [ а , б , ц , ... ] = израз ;

ауто && [ а , б , ц , ... ] = израз ;

Оператор “&” или “&&” који се користи у декларацији дефинише да ли је везивање референца лвалуе или рвалуе. Референца лвалуе представљена са “&” успоставља референцу која се може користити за промену вредности везујућих променљивих. Промене вредности направљене коришћењем референце ће се видети у оригиналној структури или тупле-у.

Референца рвалуе представљена са “&&”, са друге стране, пружа референцу која је ограничена на коришћење за читање вредности променљивих укључених у везивање. То је згодно за везивање за пролазне објекте или рвалуе које треба уништити јер избегава прављење реплике објекта, што може бити меморија и дуготрајно.



Пример 1: Повезивање структуре у Ц++

Следи пример повезивања Ц++ структуре:

#инцлуде <битс/стдц++.х>

користећи простор имена стд ;

струцт коцка

{

инт Икс ;

инт и ;

инт Витх ;

} ;

инт главни ( )

{

ц-цубе = { 10 , двадесет , 30 } ;

ауто [ к_цоординате , и_цоординате , з_цоординате ] = ц ;

цоут << 'Кс оса: ' << к_цоординате << ендл ;

цоут << 'И-оса: ' << и_цоординате << ендл ;

цоут << 'З оса: ' << з_цоординате << ендл ;

повратак 0 ;

}

У горњем примеру, декларисали смо структурну коцку са три цела броја к, и и з. Структура приказује коцку у простору. Променљива ц типа коцка је креирана и иницијализована вредностима (10,20,30). У овој структури кода везивање додељује вредности чланова к, и и з структуре појединачним променљивим к_цоординате, и_цоординате, з_цоординате респективно коришћењем синтаксе ауто[ к_цоординате, и_цоординате, з_цоординате ] = ц. Излаз горе наведеног је приказан у наставку:

Пример 2: Повезивање структуре у Ц++ за распакивање структуре

Следи пример повезивања структуре за распакивање структуре:

#инцлуде <иостреам>

#инцлуде <стринг>

користећи простор имена стд ;

струцт Ученик {

назив стринга ;

инт старости ;

} ;

инт главни ( ) {

Студенти { 'Хамза' , 32 } ;

ауто [ име , старости ] = с ;

цоут << име << 'је' << старости << ' година стар.' << ендл ;

повратак 0 ;

}

У горњем коду, структура Студент има два члана: а име то је низ и ан старости то је цео број. Затим креирамо објекат Студент и сваком његовом члану додељујемо почетне вредности. Чланови с се затим раздвајају на име променљиве и старост користећи структурно везивање, а ове вредности се затим штампају као на слици испод:

Пример 3: Повезивање структуре у Ц++ са модификаторима

Испод је пример повезивања структуре који користи модификатор за ажурирање вредности променљиве као нум1 и нум2:

#инцлуде <иостреам>

#инцлуде <тупле>

користећи простор имена стд ;

инт главни ( ) {

тупле < инт , инт > т { 25 , двадесет } ;

ауто & [ нум1 , нум2 ] = т ;

цоут << 'Вредност бр1 = ' << нум1 << ', број2 = ' << нум2 << ' ' ;

нум1 = 30 ;

цоут << 'Промењена вредност нум1 = ' << нум1 << ', број2 = ' << нум2 <<

' ' ;

ауто && [ број3 , нум4 ] = маке_тупле ( 100 , 250 ) ;

цоут << 'Сада вредност нум3 = ' << број3 << ', нум4 = ' << нум4 << ' ' ;

повратак 0 ;

}

У претходном коду, градимо тупле т и користимо референцу лвалуе да повежемо његове компоненте са нум1 и нум2. Затим мењамо вредност нум1 на 30 и исписујемо вредности нум1 и нум2. Такође направите привремени тупле преко маке_тупле(100, 250) и користите референцу рвалуе да повежете његове елементе са нум3 и нум4. Вредности нум3 и нум4 се затим штампају јер су нум3 и нум4 повезани са референцом рвалуе, не могу се користити за промену привремене торке коју формира маке_тупле(100, 250). Они су у стању само да читају из њега. Када покренете програм, на екрану ће се приказати следећи резултат:

Закључак

Повезивање структуре је карактеристика у Ц++ која распакује више вредности структуре или класе у појединачне променљиве у једном изразу, што резултира сажетијим, читљивијим и сигурнијим кодом. Повезивање структуре помоћу модификатора поједностављује процес промене вредности унутар структурираних објеката.