Врати низ из функције Ц ++

Return Array From Function C



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

Користите показиваче за враћање статичког низа

Када користимо нормалан низ, постоје шансе да добијемо неку врсту абнормалних резултата. Да бисмо то избегли, користимо статички низ у нашем Ц ++ коду. Схватимо пример који смо користили. У овој функцији смо декларисали низ са 5 вредности као тип повратка као што је овде поменуто.







Инт *функција ()



Како ће вредност бити целобројни тип, тако је означена као инт у доњем примеру. Како смо функцију увели као показивач, функција ће бити показивачког типа. Након уноса вредности, низ се враћа у главни програм.







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

Инт*показивач=функција();

Сврха показивача је да лоцира ставку која је присутна у индексу један низа. Другим речима, приказује адресу вредности у низу. Затим користимо прототип функције који ће вратити показивач.



Да бисмо видели излаз поља који се враћа кроз функцију, морамо имати приступ Убунту терминалу у случају Линука. То је због тога што је излаз доступан преко Линук терминала. У Линук -у нам је потребан компајлер за покретање Ц ++ кодова написаних у било ком уређивачу текста. Ова компилација се врши путем Г ++. -О се користи за чување резултата у датотеци. Овде нам је потребна излазна датотека и датотека изворног кода. Након компилације извршићемо код:

$г ++ -илифиле1 филе1.ц
$./филе1

Из излаза можемо видети да је низ који је иницијализован у функцији приказан у главној функцији помоћу статичког низа, иницијализованог ручно и кроз показиваче.

Вратите динамички алоцирани низ помоћу показивача

Низови се могу вратити помоћу динамичке алокације. Низови се могу динамички доделити употребом речи нев. Они ће остати тамо док их сами не избришемо. Статички низови су фиксне величине, што значи да морате да наведете величину током иницијализације. Када је низ креиран, тешко је повећати величину током извођења или касније. Али у случају динамичког низа, можемо додати више ставки кад год желимо јер се он шири како уносимо вредности у њега. Зато не морамо да наводимо или идентификујемо било коју величину.

Прелазећи на пример који смо овде користили. Користили смо динамички низ са показивачима као у претходним примерима, где смо користили показиваче са статичким низовима.

Инт*функција()

Након декларације функције, низови се динамички декларишу:

Инт*арраи= Нова инт [100];

Нови термин се стално користи за креирање динамичког низа. Изводићемо операције над низом уносом вредности у њега. Након тога, низ се враћа у главни програм:

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

Инт*показивач=функција();

Вредности које су сачуване у низу се штампају ручно. Излаз се добија методом компилације и извршења.

Вратите низ помоћу структура

Структуре су контејнери попут низа. Али низ садржи вредности истог типа података одједном. А у случају структура, оне садрже више од једне вредности типа података. Узели смо структуру названу узорак. Овде је декларација низа унутар структура уместо функција. Врста повратка је назив структуре. Структурна променљива се враћа у главни програм. Структура користи реч струцт за декларацију.

Узорак структуре
{
Инт арр[100];
};

Након декларације структуре, користили смо функцију у којој се креира објект структуре. Овај објекат ће се користити за приступ структури. Ова функција ће вратити објект структуре у главну функцију тако да можемо исписати низ кроз овај објект. Променљива ће добити вредности у променљивој. Ова вредност је целобројни број до ког ћемо унети вредности у низ. Као и у овом примеру, изабрали смо 6 као број. Дакле, бројеви ће бити унети до 6 у низ.

Струцт сампле фунц(интн)

Сада, крећући се према главном програму, створили смо објекат за приступ низу кроз ово:

Узорак структуре к;

Након иницијализације објекта, променљивој се додаје вредност до које желимо да се бројеви унесу у низ. У позиву функције проследићемо вредност у параметру:

Икс=функција(н);

Екран ћемо имати помоћу фор петље. Вредности се приказују кроз објекат декларисан на почетку главног програма:

Излаз показује да је у резултату приказано 6 вриједности јер смо унијели 6 бројева у програм.

Вратите низ користећи Стд

Ц ++ користи многе методе за враћање низа из функције. Један од њих је кроз стд :: арраи. То је шаблон структуре. Ова функција такође пружа још две функције које су величина () и празна (). Враћа се име низа које означава да је цео низ враћен главном програму. Овде ћемо додати низ датотека заглавља. Осим библиотеке, садржи све функције низа.

#инцлуде

арраи<инт,10>функција()

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

арр=функција();

Опет, фор петља ће се користити за приказивање вредности низа. Посматрамо излаз са слике приказане испод. Пошто смо користили 10 величина, биће унето 0 бројева. Због тога се приказују:

Вратите низ кроз векторски контејнер

Овај приступ је динамички додељен низ. Као и у овом случају, нема потребе за навођењем величине низа. Овде нам не треба никакав параметар величине. Користећи овај пример, морамо додати векторско заглавље у библиотеку које садржи функционалности вектора.

Крећемо се према функцији, где је повратни тип такође инт вектор и такође садржи векторски показивач као аргумент у параметру. Овде је представљен низ са именом темп:

Вецтор<инт>МултиплиАрраиБиТво(цонствектор<инт> *арр)

Функција ће помножити елементе низа са два помоћу функције тмп.пусх_бацк (). Затим вратите тмп. Променљива аутоматског типа ће прихватити вредности низа из функције. Низ садржи ставке у њему.

Излаз приказује рад векторског контејнера.

Закључак

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