Home >> C++ návod >> Datové struktury

Datové struktury

V průběhu tohoto tutoriálu jsme se naučili tvořit proměnné, do kterých lze uložit řadu hodnot určitého typu. Toho dosáhneme za pomoci polí nebo ukazatelů. Tento způsob je velmi výhodný ve chvíli, kdy chceme pracovat např. ze 100 hodnotami typu long - místo 100 různých proměnných jednoduše deklarujeme jedno pole. Velmi často se však setkáme s tím, že budeme chtít uchovávat sady proměnných různých typů, které se budou týkat nějakého prvku. Příkladem může být databáze uživatelů. Proto si v této lekci představíme datové struktury.

Co je to datová struktura?

Datová struktura je tvořena výčtem proměnných, které jsou seskupeny pod jedním jménem. Těmto proměnným říkáme členy (z anglického members) a co je důležité, mohou být různých datových typů. Podívejme se na syntaxi datové struktury:

struct identifikator{
  promenna_1;
  promenna_2;
  promenna_3;
  .
  .
  promenna_n;
};

Datovou strukturu deklarujeme pomocí klíčového slova struct, identifikátoru a výčtu proměnných (členů), které jsou uzavřeny složenými závorkami. Například:

struct uzivatel{
  string jmeno;
  string prijmeni;
  int vek;
};

Nyní je důležité si uvědomit, že jsme zatím nevytvořili žádne místo pro ukládání hodnot. To je způsobeno tím, že deklarací datové struktury, ve skutečnosti vytvoříme pouze nový datový typ uzivatel. Tento datový typ poté používáme, stejně jako ostatní, pro deklaraci proměnných:

uzivatel pepe;

Nyní jsme deklarovali proměnnou pepe typu uzivatel. Podívejme co se vytvoří v operační paměti:

datova struktura

Jak můžeme vidět na tomto obrázku, proměnné pepe bylo přiděleno místo pro uložení dvou hodnot typu string a jedné typu int. Přesně jak bylo definováno ve struktuře uzivatel.

Podívejme se nyní, jak můžeme přistoupit k jednotlivým členům proměnné pepe. Chceme-li například přistoupit ke členu jmeno, použijeme k tomu příkaz:

pepe.jmeno = "Petr";

Vždy je potřeba uvádět k jaké proměnné se člen vztahuje. To děláme pomocí tečky, kterou umístíme mezi identifikátor proměnné a člen této proměnné. K ostatním členům proměnné pepe tedy přistoupíme pomocí příkazů:

pepe.prijmeni
pepe.vek

Nyní si pro lepší představu, jak datové struktury fungují, ukážeme následující příklad:

#include <iostream>
using namespace std;

struct uzivatel{
string prezdivka;
int kod;
};


void vypis_info(uzivatel xxx){
cout << "\nTVE UDAJE:" << endl;
cout << "Prezdivka: " << xxx.prezdivka << endl;
cout << "Kod: " << xxx.kod << endl;
}

uzivatel pepe;

int main (){
cout << "##### REGISTRACE UZIVATELE #####" << endl;
cout << "\nZadej tvoji prezdivku: ";
cin >> pepe.prezdivka;
cout << "Zadej tvuj osobni ciselny kod: ";
cin >> pepe.kod;

vypis_info(pepe);
return 0;
}

V tomto příkladě jsme si nejprve vytvořili datovou strukturu uzivatel se členy prezdivka a kod. Dále jsme vytvořili funkci, která vypíše informace o uživateli. Následně jsme deklarovali proměnnou pepe typu uzivatel.

Nyní se podívejme na hlavní funkci programu. Zde je postupně uživatel postupně dotázán, aby zadal svou přezdívku a kód. Přistupujeme tedy ke členům (prezdivka a kod) proměnné pepe. Nakonec necháme pomocí funkce vypis_info vypsat informace o uzivateli.

Výstup programu může být následující:

##### REGISTRACE UZIVATELE #####

Zadej tvoji prezdivku: pepik
Zadej tvuj osobni ciselny kod: 777

TVE UDAJE:
Prezdivka: pepik
Kod: 777

Datové struktury a pole

V předchozím příkladě jsme si ukázali, jak mohou být datové strukrury užitečné, chceme-li seskupovat více proměnných v jeden celek. Tato vlastnost je velmi vhodná pro tvorbu databází. V takovém případě se však prakticky neobejdeme bez pole, proto si nyní jeden takový příklad ukážeme.

C++ Návod
Úvod do C++
Volba programu
Struktura programu
Proměnné
Konstanty
Operátory
Vstup a výstup
Řídící struktury
Funkce - 1.část
Funkce - 2.část
Pole
Práce s textovými řetězci
Ukazatele - 1.část
Ukazatele - 2.část
Dynamické proměnné
Datové struktury
©2008 - 2011 Klikzone.cz
Ráj aut - inzerce nových i ojetých aut