datový typ určuje, jaké data proměnná nese a kolik místa zabírá v paměti
- elementární - nesou jednu nedělitelnou hodnotu (int, bool, char, float)
- strukturované - skládají se z více prvků (elementárních nebo jiných strukturovaných)
- homogenní (stejnorodé) - např. pole, enum, string
- heterogenní (různorodé) - např. třída, struktura
homogenní struktury
sada prvků stejného typu, které jsou v paměti hned za sebou
string také příklad homogenní struktury
- indexování: přístup přes číslo, začíná se od 0
- velikost: je statická - jakmile pole vyrobíš, nejde nafouknout
- efektivita:
- čtení/zápis: O(1) - bleskurychlé.
- vkládání/mazání: O(n) - pokud smažeš uprostřed, vznikne díra. všechno za ní se musí posunout.
vícerozměrná pole
- pravoúhlá:
[,]
- klasická matice
- paměť: jeden velký souvislý blok
- zubatá (jagged):
[][]
- pole polí
- každý řádek může být jinak dlouhý
- data jsou rozprostřena na různých místech
- větší zátěž pro garbage collector
heterogenní struktury
Struktura (struct)
- typ: hodnotový (value)
- uložení obvykle na zásobníku (stack), pokud není součástí třídy
- kopírování: při
a = b se data fyzicky zkopírují. dvě nezávislé kopie.
- použití: malé objekty, DTO, bod v grafu, komplexní číslo