na obsah klávesové zkratky na hlavní stránku na menu

Desáté cvičení – standardní šablonová knihovna

Při práci v jazyce C++ se běžně nevyhneme použití nějakého datového kontejneru, jakým je například spojový seznam. Všechny tyto kontejnery spolu s dalšími funkcemi a třídami tvoří standardní šablonovou knihovnu.

Obsah cvičení

Na dnešní hodině jsme se zabývali STL, neboli standardní šablonovou knihovnou. Každá implementace standardu C++ musí obsahovat STL. Ta je jakousi zásobárnou obecných datových kontejnerů a generických funkcí. My jsme se omezili na stručný popis celkem čtyř tříd – vector, list, string a map. O každé třídě jsme si pověděli, k čemu slouží, jaké má významné metody a jak se použije v programu.

Doplňte do třídy Řetězec iterátor s náhodným přístupem. To tedy znamená, že iterátor bude implementovat operátor inkrementace (++), dekrementace (--), porovnávání (==, !=, <, <=, > a >=), indexace ([]) a dereference (*). V případě nutnosti implementujte též kopírovací konstruktor a přiřazovací operátor.
Vytvořte program, který spočte četnost slov na standardním vstupu. Slovem se rozumí posloupnost znaků, číslic a podtržítek, přičemž záleží na velikosti písmen. Interpunkční znaménka vynechejte. Program bude využívat třídu std::map a její operátor indexace ([]). Klíčem bude textový řetězec (buď char*, nebo std::string), hodnotou celé číslo. Na konci programu vyište všechny klíče a jejich četnosti. Použijte dopředný iterátor, který vrací klíče lexikograficky seřazené. Nezapomeňte, že operátor indexace ve třídě std::map přidá nový záznam, pokud klíč neexistuje. Tento fakt může značně zjednodušit program.