Kako Vratiti Niz

Sadržaj:

Kako Vratiti Niz
Kako Vratiti Niz

Video: Kako Vratiti Niz

Video: Kako Vratiti Niz
Video: Kako vratiti bivšeg partnera 2024, Maj
Anonim

Nizovi su jedan od najjednostavnijih oblika strukturiranog skladištenja podataka. Budući da su nedjeljiva memorijska područja dodijeljena za pohranu jednodimenzionalnih nizova, a većina programskih jezika ima sintaktičke konstrukcije za njihovo deklariranje, oni se intenzivno koriste kao međuspremnici za prijenos velike količine informacija u razne (uključujući bibliotečke) funkcije. Zauzvrat, funkcije ponekad trebaju vratiti niz.

Kako vratiti niz
Kako vratiti niz

Potrebno

  • - uređivač teksta;
  • - C ili C ++ kompajler i povezivač.

Instrukcije

Korak 1

Vratite podatke iz funkcije ili metode stavljanjem u niz fiksne dužine, dodijeljen od strane pozivatelja i proslijeđen referencom. Definirajte odgovarajući tip podataka, na primjer: typedef int t_array10 [10]; Koristite ga u deklaraciji i implementaciji potrebne funkcije ili metode: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Pozovite na odgovarajući način: int aNumbers [10]; ReturnArray (aNumbers); Nedostatak ove metode je što je dužina niza fiksna.

Korak 2

Vratite podatke niza smještanjem u izlazni međuspremnik dodijeljen pozivaocu koji prolazi pokazivač. Prototip funkcije ili metode može sadržavati parametar deklariran u notaciji niza bez specifikacije veličine: void ReturnArray (int anArray , int nSize); ili kao pokazivač: void ReturnArray (int * pnArray, int nSize); U oba slučajevi, parametar identifikatora može se koristiti u zapisu niza: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // pozovite int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Ova metoda prosljeđivanja nizova funkcijama i vraćanje podataka niza iz njih koristi se u pretežnoj većini slučajeva pri razvoju programa C. Imajte na umu da funkcije i metode koje na ovaj način prihvaćaju i vraćaju podatke, u pravilu moraju imati dodatni parametar kroz koji se prenosi stvarna veličina međuspremnika.

Korak 3

Vrati niz stvoren u funkciji ili metodi. Formalno, u ovom slučaju ne treba vraćati niz, već pokazivač na njegov prvi element: int * ReturnArray () {int * pnArray = new int [10]; // radimo s pnArray return pnArray;} // dobijemo pokazivač na stvoreni niz int * pnNumbers = ReturnArray (); // koristimo delete pnNumbers; // brisanje Ova metoda ima određena ograničenja. Dakle, niz mora biti smješten u hrpi. Pored toga, njegovo brisanje mora se izvršiti metodom koja odgovara stvaranju (obrisati u slučaju upotrebe novog, besplatnog za malloc, itd.).

Korak 4

Koristite klase kontejnera za praktično vraćanje nizova pri razvoju programa C ++. Primjer kreiranja i vraćanja niza koji je objekt klase vektorskog predloška C ++ biblioteke standardnih predložaka specificirane za int mogao bi izgledati ovako: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Imajte na umu da većina popularnih okvira pruža moćne klase ili predloške klasa polja. Često primjenjuju koncept implicitne razmjene podataka uz brojanje referenci i kopiranje na pisanje. Stoga se vraćanje vrijednosti takvih polja iz funkcija izvodi vrlo efikasno i povezano je s minimalnom potrošnjom računarskih resursa.

Preporučuje se: