Atrodiet masīva izmēru C ++

Find Array Size C



Masīvs ir konteiners ar viena veida datu elementiem. Ja mēs nezinām masīva faktisko lielumu, to var noteikt ar dažādām metodēm. Kad mēs runājam par masīva lielumu, patiesībā mēs runājam par masīvā esošo elementu skaitu. Dažreiz mēs definējam masīva lielumu, un dažreiz iekavas tiek atstātas tukšas. Šis ir šķietamais lielums, kas parāda tikai masīva spēju saglabāt tajā vērtību. Piemēram, apsveriet masīva deklarācijas paraugu

Int masīvs[] = {1,2,3,4,5,6}

Šeit masīva izmērs vai masīva garums ir 6. Un kopējais piešķiramā masīva lielums netiek parādīts. Faktiskais lielums tiek iegūts, piemērojot dažādas darbības. Šīs darbības tiek izmantotas šajā rakstā, lai iegūtu masīva lielumu.







1. piemērs

Šajā ilustrācijā mēs izmantosim sākuma () un beigu () jēdzienu. Izmantojot šo metodi, masīva lielumu var viegli uzzināt. Šīs ir divas bibliotēkas, kas ir pazīstamas ar standarta bibliotēkām. Šīs divas funkcijas atgriež iteratorus, kas parāda masīva sākotnējos un beigu punktus. Sākot no galvenes, mēs izmantojam masīvu bibliotēku. Tas ietvers visas funkcijas, kas saistītas ar masīvu. Galvenajā funkcijā mēs esam uzsākuši masīvu ar veselu skaitļu vērtībām.



Izmaksas<<……….<<beigas(uz)-begib(uz)<<

Šeit mēs neesam minējuši masīva lielumu. Displeja paziņojumā, kas seko cout, mums ir funkcijas end () un begin (). Šo divu funkciju atšķirības parādīs mums masīva lielumu. Šo funkciju parametros mēs esam izturējuši masīvu. To darot, tiks noteikts faktiskais izmērs. Šo funkciju rezultātā iegūtā vērtība tiek parādīta tieši.







Tagad pārejiet uz rezultātu. Mums vajadzētu izpildīt šīs programmas Linux, tāpēc mums ir nepieciešama Ubuntu termināla iesaiste. Tā kā mēs izmantojam C ++ kodu, mums ir jāapkopo kods, izmantojot kompilatoru. Tas ir G ++ kompilators. Pēc koda apkopošanas mēs to izpildīsim. Zemāk esošās komandas parāda mūsu izmantoto izvades pieeju.

$ g++ -o kods2 kods2.c

$./kods2



Tagad jūs varat redzēt rezultātu. Vēl viens līdzīgs piemērs std gadījumā ir attāluma funkcija. Šajā attālumā tiek aprēķināts, izmantojot sākuma () un beigu () funkcijas. Tas tiek pabeigts, izmantojot šīs funkcijas ar std.

Int=stundas:: attālums(stundas::sākt(arr),stundas::beigas(arr));

Rezultāts tiek iegūts cout paziņojumā. Lai redzētu ierakstu, vēlreiz izmantojiet kompilatoru, lai izpildītu kodu.

Šeit jūs varat redzēt, ka tiek sasniegts vēlamais rezultāts.

2. piemērs

Šis piemērs attiecas uz funkcijas sizeof () izmantošanu C ++ kodā, jo šī vērtība atgriež faktisko datu lielumu baitu veidā. Turklāt tas nodarbojas arī ar to baitu skaita atdošanu, kas tiek izmantoti masīva saglabāšanai. Citiem vārdiem sakot, šajā piemērā pirmais solis ir masīva inicializēšana, nedeklarējot masīva lielumu. funkcijai sizeof () izmantotā sintakse ir šāda:

Int= izmērs(arr)/izmērs(arr[0]);

Kur arr ir masīvs. arr [0] parāda masīva elementu indeksu.

Tātad šis apgalvojums nozīmē, ka masīva lielums tiek dalīts ar visu esošo elementu lielumu pa vienam. Tas palīdz aprēķināt garumu. Mēs esam izmantojuši veselu skaitļu mainīgo, lai saņemtu un saglabātu funkcijas atdevi.

Šeit mēs iegūsim izvadi no komandu uzvednes, izmantojot to pašu kompilēšanas-izpildes metodi.

Rezultāts parāda masīva lielumu, kas nozīmē tajā esošo elementu skaitu, kas ir 6.

3. piemērs

Šis piemērs ietver funkcijas size () izmantošanu. Šī funkcija ir ievietota standarta bibliotēkā STL. Sākotnējais solis galvenajā programmā ir masīva deklarācija. Šeit masīva nosaukumā ir arī lieluma un vesela skaitļa vērtība. Šī metode arī atgriež rezultātu tieši izvades paziņojumā.

Izmaksas<<….<<arr.Izmērs()<<

Ja “arr” ir masīvs, lai iegūtu rezultātu vai piekļūtu funkcijai, mums ir nepieciešams masīva nosaukums ar lieluma funkciju.

Lai parādītu rezultātu, mēs izmantojam g ++ kompilatoru, lai apkopotu un izpildītu rezultātu.

No izvades jūs varat redzēt, ka rezultāts ir mūsu vēlamais, kas parāda masīva faktisko lielumu.

4. piemērs

Masīva lielumu var iegūt arī, izmantojot rādītājus, jo rādītāji saglabā mainīgā vērtības adresi/atrašanās vietu. Tagad apsveriet zemāk sniegto piemēru.

Sākotnējais solis ir masīva inicializēšana kā parasti. Tad rādītājs darbojas masīva lielumam.

Int= *(&masīvs+ 1)- masīvs;

Šis ir galvenais apgalvojums, kas darbojas kā rādītājs. * tiek izmantots, lai atrastu jebkura masīva elementa atrašanās vietu, bet & - operators, lai iegūtu atrašanās vietas vērtību, kas iegūta, izmantojot rādītāju. Tādā veidā mēs iegūstam masīva lielumu no rādītājiem. Rezultāts tiek parādīts caur termināli. Atbilde ir viena. Kā minētā masīva lielums tika norādīts kā 13.

5. piemērs

Šajā piemērā mēs esam izmantojuši ideju par veidnes argumentu atskaitīšanu. Veidnes arguments ir īpaša veida parametrs. To izmanto jebkura veida argumentu nodošanai, tāpat kā parastās funkcijas, kuras var nodot kā argumentu.

Kad masīvs tiek nodots kā parametrs, tas tiek pārvērsts rādītājā, lai parādītu adresi. Lai iegūtu konkrētā masīva garumu, mēs izmantojam šo veidnes argumentu atskaitīšanas pieeju. Std ir īsa standarta forma.

Ņemot vērā doto piemēru, mēs esam ieviesuši veidņu klasi, ko izmanto, lai iegūtu masīva lielumu. Tā ir iebūvēta noklusējuma klase, kurā ir visas veidņu argumentu funkcijas.

Constexpr std: : size_tIzmērs(konstT(&masīvs)[N])izņemot, izņemot{

atgrieztiesN;

}

Šī koncepcija ir nemainīga līnija. Rezultāts tiek iegūts tieši cout paziņojumā.

No izvades jūs varat redzēt, ka esam ieguvuši vēlamo rezultātu: masīva lielumu.

6. piemērs

Mēs izmantojam std :: vector, lai programmā iegūtu masīva lielumu. Šis ir konteineru veids; tā funkcija ir saglabāt dinamiskos masīvus. Tas darbojas ar dažādām metodēm dažādām operācijām. Lai izpildītu šo piemēru, mēs esam izmantojuši vektoru bibliotēku, kurā ir visas vektoru funkcijas. Tas arī deklarē programmā izmantojamos cin, cout, endl un vector paziņojumus. Vispirms programmā tiek uzsākts masīvs. Rezultāts tiek parādīts paziņojumā pēc vektora lieluma.

Izmaksas<<vektora lielums: <<int_array.Izmērs() <<endl;

Tagad mēs redzēsim izvadi no Ubuntu termināļa. Masīva lielums ir precīzs tajā esošajiem elementiem.

Secinājums

Šajā apmācībā mēs esam izmantojuši citu pieeju, lai iegūtu masīva garumu vai lielumu. Dažas ir iebūvētas funkcijas, bet citas tiek izmantotas manuāli.