Leidke massiivi suurus C ++

Find Array Size C



Massiiv on konteiner, mis sisaldab sama tüüpi andmeid. Kui me ei tea massiivi tegelikku suurust, saab seda määrata erinevate meetoditega. Kui me räägime massiivi suurusest, siis tegelikult räägime massiivi elementide arvust. Mõnikord määratleme massiivi suuruse ja mõnikord jäetakse sulgud tühjaks. See on näiline suurus, mis näitab ainult massiivi võimet selles väärtust salvestada. Näiteks kaaluge massiivi deklaratsiooni näidist

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

Siin on massiivi suurus või massiivi pikkus 6. Ja määratud massiivi kogusuurust ei kuvata. Tegelik suurus saadakse erinevate toimingute abil. Neid toiminguid kasutatakse käesolevas artiklis massiivi suuruse saamiseks.







Näide 1

Selles illustratsioonis kasutame alguse () ja lõpu () mõistet. Selle meetodi abil saab massiivi suurust kergesti teada saada. Need on kaks raamatukogu, mis on tuntud standardraamatukogude poolest. Need kaks funktsiooni tagastavad iteraatorid, mis näitavad massiivi esialgset ja lõpp -punkti. Alates päisest kasutame massiivraamatukogu. See hõlmab kõiki massiiviga seotud funktsioone. Põhifunktsioonis oleme algatanud täismassi väärtustega massiivi.



Maksumus<<……….<<lõpp(et)-begib(et)<<

Siin pole me massiivi suurust maininud. Coutile järgnevas kuvarilauses on funktsioonid end () ja begin (). Nende kahe funktsiooni erinevused näitavad meile massiivi suurust. Nende funktsioonide parameetrites oleme massiivi läbinud. Seda tehes määratakse kindlaks tegelik suurus. Nendest funktsioonidest saadud väärtus kuvatakse otse.







Nüüd liigume väljundi poole. Me peaksime neid programme Linuxis täitma, seega vajame Ubuntu terminali kaasamist. Kuna kasutame C ++ koodi, peame koodi kompileerija kaudu kompileerima. See on G ++ kompilaator. Pärast koodi koostamist täidame selle. Allpool olevad käsud näitavad meie kasutatud väljundmeetodit.

$ g++ -o kood2 kood2.c

$./kood2



Nüüd näete väljundit. Teine sarnane näide std puhul on kaugusfunktsioon. Selles kauguses arvutatakse funktsioonide algus () ja lõpp () abil. Selle lõpetab nende funktsioonide kasutamine std -ga.

Int=tundi:: kaugus(tundi::alustada(arr),tundi::lõpp(arr));

Väljund saadakse cout -lauses. Kirje nägemiseks kasutage koodi käivitamiseks uuesti kompilaatorit.

Siin näete, et soovitud väljund on saavutatud.

Näide 2

See näide on seotud funktsiooni sizeof () kasutamisega C ++ koodis, kuna see väärtus tagastab baitide kujul andmete tegeliku suuruse. Lisaks käsitleb see ka massiivi salvestamiseks kasutatavate baitide arvu tagastamist. Teisisõnu, selles näites on esimene samm massiivi initsialiseerimine ilma massiivi suurust deklareerimata. Funktsiooni sizeof () süntaks on järgmine:

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

Kus arr on massiiv. arr [0] näitab massiivi elementide indeksit.

Seega tähendab see väide, et massiivi suurus jagatakse ükshaaval kõigi olemasolevate elementide suurusega. See aitab pikkust arvutada. Oleme kasutanud funktsiooni täisväärtuse vastuvõtmiseks ja salvestamiseks täisarvulist muutujat.

Väljundi saame käsurealt sama kompileerimise-täitmismeetodi abil.

Väljund näitab massiivi suurust, mis tähendab selles sisalduvate elementide arvu, mis on 6.

Näide 3

See näide hõlmab funktsiooni size () kasutamist. See funktsioon on paigutatud standardraamatukogusse STL. Põhiprogrammi esimene samm on massiivi deklareerimine. Siin sisaldab massiivi nimi ka suurust ja täisarvu väärtust. See meetod tagastab tulemuse ka otse väljundlauses.

Maksumus<<….<<arr.suurus()<<

Kui „arr” on massiiv, vajame tulemuse toomiseks või funktsioonile juurdepääsuks massiivi nime koos suurusefunktsiooniga.

Tulemuse kuvamiseks kasutame tulemuse kompileerimiseks ja täitmiseks g ++ kompilaatorit.

Väljundist näete, et tulemus on meie soovitud tulemus, mis näitab massiivi tegelikku suurust.

Näide 4

Massiivi suurust saab saada ka siis, kui kursorite abil näidikud salvestavad muutuja väärtuse aadressi/asukoha. Nüüd kaaluge allpool toodud näidet.

Esialgne samm on massiivi initsialiseerimine nagu tavaliselt. Seejärel töötab kursor massiivi suuruse jaoks.

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

See on põhiline väide, mis toimib osutusena. * kasutatakse massiivi mis tahes elemendi asukoha leidmiseks, samas kui operaatorit & kasutatakse kursori kaudu saadud asukoha väärtuse saamiseks. Nii saame näpunäidetest massiivi suuruse. Tulemus kuvatakse terminali kaudu. Vastus on sama. Nagu mainitud massiivi suuruseks märgiti 13.

Näide 5

Selles näites oleme kasutanud malli argumentide deduktsiooni ideed. Malli argument on eriline parameeter. Seda kasutatakse mis tahes tüüpi argumentide edastamiseks, nagu tavalisi funktsioone, mida saab argumendina edastada.

Kui massiiv edastatakse parameetrina, teisendatakse see aadressi näitamiseks kursoriks. Konkreetse massiivi pikkuse saamiseks kasutame seda malli argumentide mahaarvamise meetodit. Std on standardi lühike vorm.

Arvestades antud näidet, oleme kasutusele võtnud malliklassi, mida kasutatakse massiivi suuruse saamiseks. See on sisseehitatud vaikeklass, mis sisaldab kõiki malli argumentide funktsioone.

Constexpr std: : suurus_tsuurus(constT(&massiiv)[N])välja arvatud{

tagasiN;

}

See on selle kontseptsiooni pidev joon. Väljund saadakse otse cout -avalduses.

Väljundist näete, et oleme saanud soovitud väljundi: massiivi suuruse.

Näide 6

Kasutame programmis massiivi suuruse saamiseks std :: vector. See on teatud tüüpi konteiner; selle ülesanne on salvestada dünaamilisi massiive. See töötab erinevate toimingute jaoks erinevate meetoditega. Selle näite täitmiseks oleme kasutanud vektoriteeki, mis sisaldab kõiki vektorfunktsioone. Samuti deklareerib see programmis kasutatavaid cin-, cout-, endl- ja vektorlauseid. Esmalt käivitatakse massiiv programmis. Väljund kuvatakse cout -avalduses vektori suuruse järgi.

Maksumus<<vektori suurus: <<int_array.suurus() <<endl;

Nüüd näeme Ubuntu terminali väljundit. Massiivi suurus vastab selles sisalduvatele elementidele.

Järeldus

Selles õpetuses oleme massiivi pikkuse või suuruse saamiseks kasutanud teistsugust lähenemist. Mõned neist on sisseehitatud funktsioonid, teised aga käsitsi.