NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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.

Koupit tento kurz

Koupit všechny aktuálně dostupné lekce s funkcí odevzdávání úloh za pouhých 375 Kč
Aktuální stav konta 0 Kč
Koupí tohoto balíčku získáš přístup ke všem 17 článkům (17 lekcí) tohoto kurzu.

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

Co od nás v dalších lekcích dostaneš?
  • Neomezený a trvalý přístup k jednotlivým lekcím.
  • 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.

Kredity 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íť.

Č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