BLACK FRIDAY! Slevy až 80 % jsou všude. Tak je nepropásni a přejdi do rostoucího IT oboru!

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...

Prémiový článek

Prémiový článek

Na itnetwork.cz se nachází největší a nejucelenější česká databáze s výukovými články, jejímž cílem je umožnit kvalitní vzdělání v oblasti IT úplně každému. Měsíčně zobrazíme k milionu článků a sklidíme desítky děkovných emailů, kde nám sdělujete, že jsme vám pomohli k lepšímu zaměstnání nebo vzdělání.

Ačkoli se snažíme držet většinu obsahu úplně zadarmo, udržovat síť v provozu a aktuální stojí obrovské úsilí. Proto je nějaký obsah, jako cvičení nebo odbornější články, přístupný pouze za body. Nebojte, nestojí to skoro nic :)

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.

Omezená nabídka: Nauč se vše a ušetři

Koupit lekce a funkce postupně a po jednom 150 bodů
Koupit všechny aktuálně dostupné lekce s funkcí odevzdávání úloh za exkluzivní cenu 120 bodů
Na svém účtu máš aktuálně 0 bodů
Koupí tohoto výhodného balíčku získáš přístup ke všem 17 lekcím s kontrolou a certifikací a ještě navíc ušetříš 75 Kč. Nabídka je časově omezená a platí pro všechny lekce v kurzu. Nakup teď a získej limitovanou 20% slevu.
120 bodů získáš za přidání svého článku na síť nebo odpovídá 374 Kč 300 Kč
Pro přístup k článku potřebuješ 10 bodů
Na svém účtu máš aktuálně 0 bodů
10 bodů získáš za přidání svého článku na síť nebo odpovídá 25 Kč

Koupí článku k němu získáš neomezený přístup a to napořád. Posuneš své znalosti zas kousek dopředu a zároveň nám pomůžeš udržovat celý projekt při životě a pomáhat vám tak k lepší budoucnosti.

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

Body získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.

Dobít body můžeš okamžitě např.:

Kartou SMS Převodem
Kartou SMS Převodem
Článek pro vás napsal David Čápka
Avatar
David je zakladatelem ITnetwork a programování se profesionálně věnuje 13 let. Má rád Nirvanu, sushi 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 (1)