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

Vedomosti v hodnote stoviek tisíc získaš za pár eur

Došiel 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émiovej sekcie.

Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš s Prevádzkovými podmienkami.

Čo od nás v ďalších lekciách dostaneš?
  • Prístup k jednotlivým lekciám podľa spôsobu obstarania.
  • 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á.
Článok pre vás napísal David Hartinger
Avatar
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity