Ako Vrátiť Pole

Obsah:

Ako Vrátiť Pole
Ako Vrátiť Pole

Video: Ako Vrátiť Pole

Video: Ako Vrátiť Pole
Video: Влад А4 и Губка БОБ заснял дрон 2024, Smieť
Anonim

Polia sú jednou z najjednoduchších foriem ukladania štruktúrovaných údajov. Pretože pre ukladanie jednorozmerných polí sú vyhradené oblasti nedeliteľnej pamäte a väčšina programovacích jazykov má pre svoju deklaráciu syntaktické konštrukty, intenzívne sa používajú ako medzipamäte na prenos veľkého množstva informácií do rôznych funkcií (vrátane knižnice). Na druhej strane, funkcie niekedy musia vrátiť pole.

Ako vrátiť pole
Ako vrátiť pole

Nevyhnutné

  • - textový editor;
  • - C alebo C ++ kompilátor a linker.

Inštrukcie

Krok 1

Vrátiť údaje z funkcie alebo metódy ich umiestnením do poľa s pevnou dĺžkou, pridelené volajúcim a odovzdané odkazom. Definujte vhodný dátový typ, napríklad: typedef int t_array10 [10]; Použite ho pri deklarácii a implementácii požadovanej funkcie alebo metódy: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Volajte primerane: int aNumbers [10]; ReturnArray (aNumbers); Nevýhodou tejto metódy je, že dĺžka poľa je pevná.

Krok 2

Vráťte údaje poľa tak, že ich umiestnite do výstupnej medzipamäte pridelenej volajúcemu, ktorú odovzdá ukazovateľ. Prototyp funkcie alebo metódy môže obsahovať parameter deklarovaný v notácii poľa bez špecifikácie veľkosti: void ReturnArray (int anArray , int nSize); alebo ako ukazovateľ: void ReturnArray (int * pnArray, int nSize); V oboch prípadoch možno parameter identifikátora použiť v zápise poľa: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Táto metóda odovzdávania polí funkciám a vracania údajov z nich z polí sa v drvivej väčšine prípadov používa pri vývoji programov C. Upozorňujeme, že funkcie a metódy, ktoré takýmto spôsobom prijímajú a vracajú údaje, musia spravidla mať ďalší parameter, cez ktorý sa prenáša skutočná veľkosť medzipamäte.

Krok 3

Vráti pole vytvorené funkciou alebo metódou. Formálne by v tomto prípade nemalo byť vrátené pole, ale ukazovateľ na jeho prvý prvok: int * ReturnArray () {int * pnArray = new int [10]; // práca s pnArray návrat pnArray;} // získanie ukazovateľa na vytvorené pole int * pnNumbers = ReturnArray (); // použitie mazania pnNumbers; // delete Táto metóda má určité obmedzenia. Pole teda musí byť umiestnené v halde. Okrem toho musí byť jeho vymazanie vykonané metódou zodpovedajúcou vytvoreniu (vymazanie v prípade použitia nového, free for malloc atď.).

Krok 4

Použite triedy kontajnerov na pohodlné vrátenie polí pri vývoji programov v C ++. Príklad vytvorenia a vrátenia poľa, ktoré je objektom triedy vektorových šablón štandardnej knižnice šablón C ++ zadanej pre int, môže vyzerať takto: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Všimnite si, že väčšina populárnych rámcov poskytuje výkonné triedy alebo šablóny tried polí. Často implementujú koncept implicitného zdieľania údajov s počítaním referencií a kopírovaním-na-zápis. Preto sa návrat z hodnoty takýchto polí z funkcií vykonáva veľmi efektívne a je spojený s minimálnou spotrebou výpočtových zdrojov.

Odporúča: