Si Të Kalosh Një Grup Në Një Funksion

Përmbajtje:

Si Të Kalosh Një Grup Në Një Funksion
Si Të Kalosh Një Grup Në Një Funksion

Video: Si Të Kalosh Një Grup Në Një Funksion

Video: Si Të Kalosh Një Grup Në Një Funksion
Video: A behet e ndaluar gruaja per burrin nese ai thith siset e saj? 2024, Dhjetor
Anonim

Vargjet janë një nga format më të përdorura për ruajtjen e të dhënave të strukturuara në programet kompjuterike. Përpunimi i tyre mund të bëhet nga algoritme të ndryshëm të zbatuar në metodat dhe funksionet e klasës. Në përputhje me rrethanat, shpesh kërkohet të kalohet një varg në një funksion. Gjuhët C dhe C ++ ofrojnë liri të madhe në zgjedhjen e metodave të kryerjes së këtij veprimi.

Si të kalosh një grup në një funksion
Si të kalosh një grup në një funksion

Është e nevojshme

përpiluesit e gjuhëve C dhe C ++

Udhëzimet

Hapi 1

Kaloni një grup me madhësi fikse në funksion. Ndryshoni prototipin e funksionit për të përmbajtur një argument të llojit të duhur. Për shembull, deklarimi i një funksioni që merr një varg vlerash numerike të plotë të tre elementeve si një parametër mund të duket kështu:

Funksioni i pavlefshëm i Array (int numrat [3]);

Një funksion i tillë quhet duke kaluar një koleksion direkt tek ajo si argument:

i pavlefshëm DisaFunksion ()

{

int aNumrat = {1, 2, 3};

Funksioni Array (numrat);

}

Të dhënat e transferuara kopjohen në pirg. Modifikimi i vargut në funksionin e thirrur nuk e ndryshon burimin.

Hapi 2

Kaloni vargjeve me gjatësi të ndryshueshme në funksion. Për ta bërë këtë, thjesht mos specifikoni dimensionin e argumentit përkatës:

funksion i pavlefshëm Array (int numrat );

Vargjet shumëdimensionale gjithashtu mund të kalohen në një mënyrë të ngjashme (vetëm "dimensioni" i parë mund të jetë variabël):

Funksioni i pavlefshëm Array (int numrat [3] [2]);

Këto funksione thirren në të njëjtën mënyrë si në hapin e parë.

Në mënyrë që të jeni në gjendje të përpunoni në mënyrë korrekte vargje me gjatësi të ndryshueshme në një funksion, duhet ose të kaloni në mënyrë të qartë numrin e elementeve të tyre përmes një parametri shtesë, ose të përdorni konvencione që vendosin kufizime në vlerat e vetë elementeve (një vlerë e caktuar duhet të jetë një shenjë e fundit të vargut).

Hapi 3

Kaloni grupin nga treguesi. Argumenti i funksionit duhet të jetë një tregues i një vlere me një tip që korrespondon me elementet e grupit. Për shembull:

Funksioni i pavlefshëm i radhës (int * numrat);

Qasja në të dhëna në një funksion mund të kryhet si në shënimin për të punuar me elementët e grupit, ashtu edhe duke përdorur aritmetikën e adresës:

Funksioni i pavlefshëm i Array (int * numrat)

{

pNumra [0] = 10; // aksesi në elementin 0

* (numrat + 1) = 20; // aksesi në pikën 1

}

Bej kujdes! Meqenëse funksioni nuk kalon një kopje të të dhënave, por një tregues për të, vargu origjinal do të modifikohet.

Avantazhi i kësaj metode është shpejtësia, ekonomia e burimeve llogaritëse dhe një fleksibilitet i caktuar. Kështu që, ju mund ta quani funksionin e synuar duke e kaluar atë një tregues në një element arbitrar të grupit:

i pavlefshëm DisaFunksion ()

{

int aNumrat = {1, 2, 3};

Funksioni Array (numrat); // gjithë grupi

Funksioni Array (& numrat [1]); // duke filluar nga elementi i dytë

}

Kjo metodë gjithashtu zakonisht përfshin kalimin e numrit të elementeve të disponueshëm në një parametër shtesë ose përdorimin e një terminatori të vargut.

Hapi 4

Kaloni të dhëna në një funksion me një parametër që është një objekt ose një referencë në një objekt të klasës që zbaton funksionalitetin e grupit. Klasa ose modele të tilla të klasave zakonisht gjenden në bibliotekat dhe kornizat popullore (QVector në Qt, CArray në MFC, std:: vektor në STL, etj.).

Shpesh këto klasa zbatojnë një strategji të nënkuptuar të ndarjes së të dhënave me numërimin e referencës, duke kryer një kopje të thellë vetëm kur të dhënat modifikohen (kopjoni në shkrim). Kjo ju lejon të minimizoni konsumin e burimeve llogaritëse edhe në rastin e kalimit të objekteve të vargut sipas vlerës përmes argumenteve të funksioneve dhe metodave:

Funksioni i pavlefshëm i grupit (QVector oArray)

{

int nItemCount = oArray.count ();

int nItem = oArray [0];

}

i pavlefshëm SomeFunction ()

{

QVector oArray (10);

për (int i = 0; i

Recommended: