Nové výhodné předplatné namísto kreditů je tu! Více informací. Upravili jsme také naše provozní podmínky.
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Lekce 12 - Implementace vektoru v jazyce C

V minulé lekci, Použití kolekcí z knihovny GLib v C, jsme si ukázali použití volně dostupné knihovny GLib a univerzálních kolekcí, které poskytuje.

Dnes si představíme kolekci vektor, která funguje jako pole, ale není velikostně omezena.

Dnešní lekce o kolekci vektor pochází z kurzu Dynamická práce s pamětí v jazyce C. Pokud jste ji již absolvovali, můžete ji přeskočit. Protože si zakládáme na poskytování kvalitních a kompletních kurzů, vnímáme jako důležité, aby byla tato problematika součástí i kurzu kolekcí.

Motivace

Oproti spojovému seznamu má pole výhodu v rychlosti náhodného přístupu. Víme, že prvky pole se v paměti nacházejí bezprostředně za sebou. Není tedy problém okamžitě přeskočit např. na pátý prvek. Pole funguje jako ukazatel na pozici 0, v tomto případě tedy stačí vzít velikost jednoho prvku a skočit v paměti o čtyřnásobek této velikosti doprava.

Hlavní nevýhodou pole ovšem je, že jeho velikost je omezena. Jakmile pole vytváříme, musíme uvést, jak velký prostor (jak velkou řádku jedniček a nul) pro něj má operační systém v paměti vyhradit. Budeme-li programovat např. telefonní seznam, dá se velmi špatně odhadnout, kolik čísel v něm bude náš uživatel mít. Bude to 10 nebo 1000? Mohli bychom vytvořit pole telefonních čísel o velikosti 1000. Uživatel by poté využíval jen jeho část a bylo by to lepší řešení, než když velikost pole podceníme a uživateli aplikace sdělí, že nemá kam ukládat (v tom lepším případě) nebo paměť rovnou přeteče. Jak to ale udělat správně?


 

...konec náhledu článku...
Pokračuj dál

Znalosti v hodnotě stovek tisíc získáš za pár korun

Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.

Obsah článku spadá pod licenci Premium, koupí článku souhlasíš s Provozními podmínkami.

Co od nás v dalších lekcích dostaneš?
  • Přístup k jednotlivým lekcím dle způsobu pořízení.
  • Kvalitní znalosti v oblasti IT.
  • Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.

Popis článku

Požadovaný článek má následující obsah:

V C tutoriálu implementujeme dynamickou kolekci vektor, která funguje jako pole, ale není velikostně omezena.
Článek pro vás napsal 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 se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity