Najděte velikost pole C ++

Find Array Size C



Pole je kontejner s prvky stejného datového typu. Pokud neznáme skutečnou velikost pole, lze ji určit různými metodami. Když mluvíme o velikosti pole, ve skutečnosti mluvíme o počtu prvků přítomných v poli. Někdy definujeme velikost pole a někdy jsou závorky prázdné. Toto je zdánlivá velikost, která ukazuje pouze kapacitu pole pro uložení hodnoty do něj. Zvažte například ukázkovou deklaraci pole

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

Zde je velikost pole nebo délka pole 6. A celková velikost pole, která má být přiřazena, není zobrazena. Skutečná velikost se získá použitím různých operací. Tyto operace jsou v tomto článku použity k získání velikosti pole.







Příklad 1

V této ilustraci použijeme koncept begin () a end (). Pomocí této metody lze snadno zjistit velikost pole. Jedná se o dvě knihovny, které jsou známé pro standardní knihovny. Tyto dvě funkce vrací iterátory, které ukazují předběžné a koncové body pole. Počínaje záhlavím používáme knihovnu polí. To bude zahrnovat všechny funkce související s polem. V hlavní funkci jsme iniciovali pole s celočíselnými hodnotami.



Náklady<<……….<<konec(na)-žebrat(na)<<

Zde jsme nezmínili velikost pole. V příkazu display následujícím za cout máme funkce end () a begin (). Odlišnost mezi těmito dvěma funkcemi nám ukáže velikost pole. V parametrech těchto funkcí jsme předali pole. Tímto způsobem bude určena skutečná velikost. Výsledná hodnota z těchto funkcí se zobrazí přímo.







Nyní se pohybujeme směrem k výstupu. Tyto programy máme spouštět v Linuxu, takže potřebujeme zapojení terminálu Ubuntu. Protože používáme kód C ++, musíme kód zkompilovat pomocí kompilátoru. To je kompilátor G ++. Po kompilaci kódu jej provedeme. Níže uvedené příkazy ukazují přístup, který jsme použili.

$ g++ -o kód2 kód2.C

$./kód2



Nyní můžete vidět výstup. Dalším podobným příkladem v případě std je funkce vzdálenosti. V této vzdálenosti se vypočítá pomocí funkcí begin () a end (). To je dokončeno použitím těchto funkcí se std.

Int=hodiny:: vzdálenost(hodiny::začít(arr),hodiny::konec(arr));

Výstup je získán v příkazu cout. Chcete -li zobrazit záznam, spusťte kód znovu pomocí kompilátoru.

Zde vidíte, že jsme dosáhli požadovaného výstupu.

Příklad 2

Tento příklad se týká použití funkce sizeof () v kódu C ++, protože tato hodnota vrací skutečnou velikost dat ve formě bajtů. Dále se také zabývá vrácením počtu bajtů, které jsou použity k uložení pole. Jinými slovy, v tomto příkladu je prvním krokem inicializace pole bez deklarování velikosti pole. syntaxe použitá pro funkci sizeof () je:

Int al= velikost(arr)/velikost(arr[0]);

Kde arr je pole. arr [0] ukazuje index prvků v poli.

Toto prohlášení tedy znamená, že velikost pole je dělena velikostí všech přítomných prvků, jeden po druhém. To pomáhá při výpočtu délky. Použili jsme celočíselnou proměnnou k přijetí a uložení hodnoty vrácené z funkce.

Zde získáme výstup z příkazového řádku stejnou metodou kompilace-provedení.

Výstup ukazuje velikost pole, což znamená počet prvků v něm přítomných, což je 6.

Příklad 3

Tento příklad zahrnuje použití funkce size (). Tato funkce je umístěna ve standardní knihovně STL. Počátečním krokem v hlavním programu je deklarace pole. Zde název pole také obsahuje velikost a celočíselnou hodnotu. Tato metoda také vrací výsledek přímo ve výstupním příkazu.

Náklady<<….<<arr.velikost()<<

Kde „arr“ je pole, abychom získali výsledek nebo získali přístup k funkci, potřebujeme název pole s funkcí size.

K zobrazení výsledku používáme kompilátor g ++ ke kompilaci a spuštění výsledku.

Z výstupu můžete vidět, že výsledkem je náš požadovaný, který ukazuje skutečnou velikost pole.

Příklad 4

Velikost pole lze také získat pomocí ukazatelů, protože ukazatele ukládají adresu/umístění hodnoty proměnné. Nyní zvažte níže uvedený příklad.

Prvním krokem je inicializace pole jako obvykle. Potom ukazatel pracuje pro velikost pole.

Int jen= *(&pole+ 1)- pole;

Toto je základní tvrzení, které funguje jako ukazatel. * se používá k vyhledání polohy libovolného prvku v poli, zatímco operátor & se používá k získání hodnoty umístění získané pomocí ukazatele. Toto je způsob, jakým získáváme velikost pole z ukazatelů. Výsledek je zobrazen přes terminál. Odpověď je stejná. Protože velikost zmíněného pole byla uvedena jako 13.

Příklad 5

V tomto příkladu jsme použili myšlenku dedukce argumentu šablony. Argument šablony je parametr zvláštního druhu. Používá se k předání argumentu jakéhokoli typu, stejně jako běžné funkce, které lze předat jako argument.

Když je pole předáno jako parametr, je převedeno na ukazatel, aby se zobrazila adresa. Abychom získali délku konkrétního pole, používáme tento přístup k odvození argumentu šablony. Std je krátká forma standardu.

Vzhledem k uvedenému příkladu jsme zavedli třídu šablony používanou k získání velikosti pole. Je to výchozí vestavěná třída, která obsahuje všechny funkce argumentů šablony.

Constexpr std: : velikost_tvelikost(konstT(&pole)[N.])noexcept{

vrátit seN.;

}

Toto je konstantní linie v tomto konceptu. Výstup je získán přímo v příkazu cout.

Z výstupu můžete vidět, že máme požadovaný výstup: velikost pole.

Příklad 6

K získání velikosti pole v programu používáme std :: vector. Toto je typ kontejneru; jeho funkcí je ukládat dynamická pole. Pracuje s různými metodami pro různé operace. K dosažení tohoto příkladu jsme použili vektorovou knihovnu, která obsahuje všechny vektorové funkce. Také deklaruje příkazy cin, cout, endl a vector, které mají být použity v programu. Pole je inicializováno jako první v programu. Výstup je zobrazen v příkazu cout podle velikosti vektoru.

Náklady<<velikost vektoru: <<int_array.velikost() <<endl;

Nyní uvidíme výstup z terminálu Ubuntu. Velikost pole je přesná k prvkům v něm přítomných.

Závěr

V tomto kurzu jsme použili jiný přístup k získání délky nebo velikosti pole. Některé jsou integrované funkce, zatímco jiné se používají ručně.