Mi egy tömb

Array - komplex (összetett strukturált) adattípus, amelyet az jellemez, a következők szerint:

· A tömb elemek azonos típusú, szemben a struktúrák, így minden egyes eleme a tömb foglal azonos mennyiségű memóriát;







· Array található RAM, ahelyett, hogy a külső eszköz, például fájlok (2. nap);

· Array elemek foglalnak szomszédos sejtekben, ezzel szemben például a listák (2. nap).

Hozzáférés a tömb elemeit egy C ++ történik kétféleképpen.

Először is, segítségével a sorszámot az elem a tömb, amely az úgynevezett index. jellemző többféle programozási nyelvek és tartják az első félévben. Ez egyszerűbb és ismernie, hogy azok, akik tanulmányozták a nyelvet Pascal. B, köztük egy állandó vagy változó lehet használni, vagy a kifejezés egy típusú kompatibilis vele, mint egy index. Az index nem lehet használni, mint egy kifejezés valódi típusát.

A tömbök egy vagy több dimenzióban. Ebben a részben figyelembe vesszük a egydimenziós tömb, ami néha olyan vektor, ami azt jelenti, hogy egy vektor n-dimenziós térben. Munka kétdimenziós tömbök (mátrixok) tartják a fejezetben. 5. Három vagy több dimenzió a gyakorlatban ritkán használják, mert az ilyen tömbök nagy részét elfoglalják RAM mennyisége.

Az alábbiakban a „array” alatt azt értjük, egydimenziós tömbben.

Az idő (fázis), amikor memóriát a tömb, kétféle őket. Memória a dinamikus tömb elkülönített futási időt, és ha a tömb nem szükséges, a memória is megjelent neki. Az ilyen tömbök tartják a második félévben.

Az egydimenziós tömb rögzített méretét (ez egy statikus) nyilvánították általános formában az alábbiak szerint:

Itt a típus - milyen típusú a tömb elemeinek. Kezdetben, figyelembe vesszük az egyszerű típusok (int, float, char), de akkor a komplex, mint például a szerkezet. A nevével szabályai azonosítók. Minden elem a tömb ugyanaz a neve, az egyetlen változás kódot vagy cikkszám. N - a dimenzió (vagy mérete) a tömb, mint egy egész konstans vagy konstans kifejezésnek. Ez az érték határozza meg a sejtek számát RAM számára fenntartott a tömb. Például:







úszó egy [10]; vagy const n = 10; úszó egy [n];

Ellentétben dinamikus tömb statikus fordítási idejű memória van fenntartva, hogy befogadja a N számú típusú (10 valós számok). Egy tömb memória szükséges mennyiség K * N bájt (4 * 10), ahol k - szükséges bájtok számát befogadni az egy ilyen típusú elemből (egy float típusú). Ez a memória megmarad a program időtartama, vagy inkább, egy funkció vagy blokk, amely leírja a tömbben. Szoftver szükséges memória kapacitása segítségével határozzuk meg a sizeof művelet az alábbiak szerint:

M = sizeof (típus) * N; vagy M = sizeof (név); vagy M = sizeof neve;

ahol M - egész változó, amely meghatározza a méret a tömb bájtban. Írja feltétlenül zárójelbe, és a nevét is szögletes zárójelek nélkül. A következő program megjeleníti kétszer annyi 40.

úszó egy [10]; int M1, M2;

M1 = sizeof (float) * 10; // de M1 = sizeof úszó * 10 - Hiba!

M2 = sizeof (A); // vagy M2 = sizeof A;

Sok modern programozási rendszerek, beleértve a C ++, a számozása a tömb elemeinek kezdődik 0. Ekkor a A [n-1] - az utolsó elem a tömb. Ez magában foglalja a mutatók, ha foglalkoznak tömbök (lásd. A 2. nap). Ezért, ebben a példában, a index értéke 0 és 9 között, a befogadó, azaz, az index az utolsó eleme a tömb eggyel kevesebb, mint a dimenzió. Bejelentette 10 tömb elemek azonosítása a következőképpen: A [0], A [1], A [2], ..., A [9]. A C ++, nincs ellenőrzés tömb határokat. Lehetőség van, hogy menjen annak határain kívül, és írjuk az értéket egy változó, vagy akár a programkódot. Az ilyen szabályozás kell vigyázni a programozó.

Ha statikus tömbök problémák adódhatnak, ha a tömb méretét előre, nem tudjuk. Ebben az esetben mi egy tömböt a maximális mérete általában ismert. Az igazi dimenzióját, és további felhasználásra, például a ciklusok, és más célokra:

const nmax = 100; float X [nmax];

int n; cout<<”Input the size of array ”; cin>> N;

/ * D alshoy dolgozik n (inkább, mint a nmax) a tömb elemeinek, például, azok bevezetése. * /

A (int i = 0; i

// Ez a vonal együtt lesüllyeszthető fogszabályozó.

Ez a módszer egyszerűbb, de hatástalan memóriafoglalási szempontból a „könyvek” több memóriát, mint a tényleges használat. Ezekben az esetekben a szakmailag alkalmazott hatékonyabb dinamikus tömböket (lásd. A 2. nap).