12. diel - Implementácia vektora v jazyku C
V minulej lekcii, Použitie kolekcií z knižnice Glib v C , sme si ukázali použitie voľne dostupné knižnice Glib a univerzálnych kolekcií, ktoré poskytuje.
Dnes si predstavíme kolekciu vektor, ktorá funguje ako pole, ale nie je veľkostne obmedzená.
Dnešné lekcie o kolekciu vektor pochádza z kurzu Dynamická práca s pamäťou v jazyku C. Ak ste ju už absolvovali, môžete ju preskočiť. Pretože si zakladáme na poskytovanie kvalitných a kompletných kurzov, vnímame ako dôležité, aby bola táto problematika súčasťou i kurzu kolekcií.
Motivácia
Oproti spojovému zoznamu má polia výhodu v rýchlosti náhodného
prístupu. Vieme, že prvky poľa sa v pamäti nachádzajú bezprostredne za
sebou. Nie je teda problém okamžite preskočiť napr. Na piaty prvok. Pole
funguje ako ukazovateľ na pozíciu 0
, v tomto prípade teda
stačí vziať veľkosť jedného prvku a skočiť v pamäti o štvornásobok
tejto veľkosti doprava.
Hlavnou nevýhodou poľa však je, že jeho veľkosť je obmedzená.
Akonáhle pole vytvárame, musíme uviesť, aký veľký priestor (ako veľkú
riadku jedničiek a núl) pre neho má operačný systém v pamäti vyhradiť.
Ak budeme programovať napr. Telefónny zoznam, dá sa veľmi zle odhadnúť,
koľko čísel v ňom bude náš užívateľ mať. Bude to 10
alebo
1000
? Mohli by sme vytvoriť polia telefónnych čísel o
veľkosti 1000
. Užívateľ by potom využíval len jeho časť a
bolo by to lepšie riešenie, než keď veľkosť poľa podceníme a
používateľmi aplikácie oznámi, že nemá kam ukladať (v tom lepšom
prípade) alebo pamäť rovno pretečie. Ako to ale urobiť správne?
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Obmedzená ponuka: Nauč sa všetko a ušetri
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V C tutoriálu implementujeme dynamickú kolekciu vektor, ktorá funguje ako pole, ale nie je veľkostne obmedzená.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.