Warning
This page is located in archive.

Úkol 4

Ve 4. úkolu převedete strukturu list z minulého úkolu na plnohodný objekt s metodami a konstruktory. Zároveň listu přibyly čtyři nové metody, jmenovitě

  • list::merge, která předpokládá, že jsou oba seznamy seřazené a sloučí je do levého (tak, aby výsledný seznam byl též seřazený)
  • list:remove, která bere číslo a vymaže z listu všechny jeho výskyty
  • list::unique, která z listu vymaže všechny sousedící duplikáty
  • list::reverse, která otočí pořadí prvků v listu
  • konstruktor, který bere vektor a vytvoří seznam obsahující stejné prvky jako předaný vektor.

Stáhněte si potřebné hlavičkové soubory a testy.

Co odevzdat?

Jeden nebo více souborů .cpp, které implementují funkce deklarované v souboru list.hpp tak, aby testy procházely a neztrácela se paměť. Při práci na úkolu soubor list.hpp neměňte; nemusíte ho ani odevzdávat.

Rady

Nezapomeňte, že při definování funkce, která je deklarována uvnitř třídy, k ní musíte referovat pomocí jména třídy.

class foo {
    void say_hello();
};
 
void foo::say_hello() {
    std::cout << "hello\n";
}

Užitečné hlavičky

Pro tento úkol žádné hlavičky ze standardní knihovny nedoporučujeme.

Implementační rady

  • Při operacích, které modifikují oba listy, silně doporučujeme pracovat přímo s uzly obou listů, ne pouze s prvky uloženými v nich.
  • Obvykle se očekává, že merge je stabilní, ale v tomto úkolu to není testováno.
  • V inicializačním seznamu lze zavolat jiný konstruktor třídy.
courses/a7b36pjc/ukoly/ukol_4.txt · Last modified: 2016/10/06 12:00 by horenmar