Raskite masyvo dydį C ++

Find Array Size C



Masyvas yra talpykla, turinti to paties tipo duomenų elementus. Jei nežinome tikrojo masyvo dydžio, jį galima nustatyti įvairiais metodais. Kai mes kalbame apie masyvo dydį, iš tikrųjų kalbame apie masyvo elementų skaičių. Kartais mes apibrėžiame masyvo dydį, o kartais skliausteliai paliekami tušti. Tai matomas dydis, kuris parodo tik masyvo gebėjimą išsaugoti jame vertę. Pavyzdžiui, apsvarstykite masyvo deklaracijos pavyzdį

Int masyvas[] = {1,2,3,4,5,6}

Čia masyvo dydis arba masyvo ilgis yra 6. O bendras masyvo dydis, kuris turi būti priskirtas, nerodomas. Tikrasis dydis gaunamas taikant skirtingas operacijas. Šios operacijos naudojamos šiame straipsnyje, norint gauti masyvo dydį.







1 pavyzdys

Šioje iliustracijoje naudosime pradžios () ir pabaigos () sąvokas. Taikant šį metodą, masyvo dydį galima lengvai sužinoti. Tai yra dvi bibliotekos, žinomos dėl standartinių bibliotekų. Šios dvi funkcijos grąžina iteratorius, rodančius masyvo preliminarius ir galinius taškus. Pradėdami nuo antraštės, naudojame masyvų biblioteką. Tai apims visas su masyvu susijusias funkcijas. Pagrindinėje funkcijoje mes inicijavome masyvą, turintį sveikų skaičių reikšmes.



Kaina<<……….<<galas(į)-begibas(į)<<

Čia mes neminėjome masyvo dydžio. Ekrano sakinyje, esančiame po cout, turime funkcijas end () ir begin (). Šių dviejų funkcijų skirtumai parodys mums masyvo dydį. Šių funkcijų parametruose mes išlaikėme masyvą. Tai padarius, bus nustatytas tikrasis dydis. Šių funkcijų gauta vertė rodoma tiesiogiai.







Dabar pereinama prie išvesties. Turime vykdyti šias programas „Linux“, todėl mums reikia Ubuntu terminalo dalyvavimo. Kadangi mes naudojame C ++ kodą, mes turime surinkti kodą per kompiliatorių. Tai G ++ kompiliatorius. Surinkę kodą, mes jį vykdysime. Žemiau pateiktos komandos parodo mūsų naudojamą išvesties metodą.

$ g++ -o kodas2 kodas2.c

$./kodas2



Dabar galite pamatyti išvestį. Kitas panašus pavyzdys std atveju yra atstumo funkcija. Šis atstumas apskaičiuojamas naudojant pradžios () ir pabaigos () funkcijas. Tai baigiama naudojant šias funkcijas su std.

Int=valandų:: atstumas(valandų::pradėti(arr),valandų::galas(arr));

Rezultatas gaunamas cout teiginyje. Norėdami pamatyti įrašą, dar kartą naudokite kompiliatorių, kad įvykdytumėte kodą.

Čia galite pamatyti, kad gauname norimą rezultatą.

2 pavyzdys

Šis pavyzdys susijęs su funkcijos sizeof () naudojimu C ++ kode, nes ši vertė grąžina faktinį duomenų dydį baitais. Be to, jis taip pat susijęs su baitų, naudojamų masyvui saugoti, skaičiaus grąžinimu. Kitaip tariant, šiame pavyzdyje pirmasis žingsnis yra masyvo inicijavimas nedeklaruojant masyvo dydžio. funkcijai sizeof () naudojama sintaksė:

Int= dydis(arr)/dydis(arr[0]);

Kur arr yra masyvas. arr [0] rodo masyvo elementų indeksą.

Taigi šis teiginys reiškia, kad masyvo dydis yra padalintas iš visų esamų elementų dydžio po vieną. Tai padeda apskaičiuoti ilgį. Mes naudojome sveiko skaičiaus kintamąjį, kad gautume ir išsaugotume funkcijos grąžą.

Išvestį čia gausime iš komandinės eilutės tuo pačiu kompiliavimo-vykdymo metodu.

Išvestis rodo masyvo dydį, o tai reiškia, kad jame esančių elementų skaičius yra 6.

3 pavyzdys

Šis pavyzdys apima dydžio () funkcijos naudojimą. Ši funkcija įdėta į standartinę biblioteką STL. Pradinis pagrindinės programos žingsnis yra masyvo deklaravimas. Čia masyvo pavadinime taip pat yra dydis ir sveikasis skaičius. Šis metodas taip pat grąžina rezultatą tiesiai išvesties ataskaitoje.

Kaina<<….<<arr.dydžio()<<

Jei „arr“ yra masyvas, norint gauti rezultatą ar pasiekti funkciją, mums reikia masyvo pavadinimo su dydžio funkcija.

Norėdami parodyti rezultatą, mes naudojame kompiliatorių g ++, kad sudarytume ir įvykdytume rezultatą.

Iš išvesties matote, kad rezultatas yra mūsų norimas, kuris parodo tikrąjį masyvo dydį.

4 pavyzdys

Masyvo dydį taip pat galima gauti naudojant rodykles, nes rodyklės saugo kintamojo vertės adresą/vietą. Dabar apsvarstykite žemiau pateiktą pavyzdį.

Pirmasis žingsnis yra inicijuoti masyvą, kaip įprasta. Tada žymeklis tinka masyvo dydžiui.

Int len= *(&masyvas+ 1)- masyvas;

Tai yra pagrindinis teiginys, kuris veikia kaip rodyklė. * naudojamas bet kurio masyvo elemento padėčiai surasti, o operatorius & naudojamas norint gauti vietos, gautos per žymeklį, vertę. Taip iš rodyklių gauname masyvo dydį. Rezultatas rodomas per terminalą. Atsakymas tas pats. Kaip minėto masyvo dydis buvo nurodytas kaip 13.

5 pavyzdys

Šiame pavyzdyje mes panaudojome šablono argumentų išskaičiavimo idėją. Šablono argumentas yra ypatingos rūšies parametras. Jis naudojamas bet kokio tipo argumentams perduoti, kaip ir įprastos funkcijos, kurias galima perduoti kaip argumentą.

Kai masyvas perduodamas kaip parametras, jis paverčiamas rodykle, kad būtų rodomas adresas. Norėdami gauti konkretaus masyvo ilgį, naudojame šį šablono argumentų išskaičiavimo metodą. Std yra trumpa standarto forma.

Atsižvelgdami į pateiktą pavyzdį, mes pristatėme šablonų klasę, naudojamą masyvo dydžiui gauti. Tai numatytoji integruota klasė, kurioje yra visos šablono argumentų funkcijos.

Constexpr std: : dydis_tdydžio(konstT(&masyvas)[N])isskyrus{

grįžtiN;

}

Tai yra nuolatinė šios koncepcijos linija. Rezultatas gaunamas tiesiogiai cout teiginyje.

Iš išvesties matote, kad gavome norimą išvestį: masyvo dydį.

6 pavyzdys

Norėdami gauti masyvo dydį programoje, naudojame std :: vector. Tai konteinerio rūšis; jo funkcija yra saugoti dinaminius masyvus. Skirtingoms operacijoms jis veikia skirtingais metodais. Šiam pavyzdžiui įgyvendinti panaudojome vektorinę biblioteką, kurioje yra visos vektorinės funkcijos. Ji taip pat deklaruoja, kad programoje bus naudojami cin, cout, endl ir vektoriniai teiginiai. Pirmiausia programoje inicijuojamas masyvas. Rezultatas rodomas cout sakinyje pagal vektoriaus dydį.

Kaina<<vektoriaus dydis: <<int_array.dydžio() <<endl;

Dabar pamatysime išvestį iš „Ubuntu“ terminalo. Masyvo dydis atitinka jame esančius elementus.

Išvada

Šioje pamokoje masyvo ilgiui ar dydžiui gauti panaudojome kitokį metodą. Kai kurios funkcijos yra integruotos, o kitos naudojamos rankiniu būdu.