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
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.
roční PŘEDPLATNÉ
1 082 Kč
měsíčně, placeno ročně (12 984 Kč)14 000+ lekcí, cvičení a testů
6 000+ ti zůstane napořád
Neomezený přístup ke všem aktuálním
i připravovaným kurzům.
Koupit pouze tento kurz
Získej okamžitý přístup ke kurzu bez
časového omezení.
375 Kč
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš s Provozními podmínkami.
- 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.
David se informační technologie naučil na