Ze zkoušky je možné získat maximálně 40 bodů, 20 bodů z obsáhlejších otázek na této stránce a 20 bodů z krátkých otázek.
front()
– vrátí první prvek
push(element)
– přidá do fronty další prvek
pop()
– zahodí první prvek
size()
– vrátí velikost fronty (množství prvků ve frontě)
empty()
– vrátí 'true' pokud je fronta prázdná, jinak false
class B {}; class D : public B {}; void f(B& throwable) { throw throwable; } int main() { D status; try { f(status); } catch (D& e) { std::cout << "Chytil jsem D!\n"; } catch (...) { std::cout << "To je divny...\n"; } }řešení
get_size()
vrací int. [2b] const unsigned buf_size = 1024;
int ia[buf_size + 3];
int ib[get_size()];
int ic[9 * 6 - 55];
struct A { A() { std::cout << "A "; } ~A() { std::cout << "~A "; } void say() { std::cout << "A says "; } void say() const { std::cout << "A says const "; } }; struct B : A { B() { std::cout << "B "; } ~B() { std::cout << "~B "; } void say() { std::cout << "B says "; } void say() const { std::cout << "B says const "; } }; int main() { A a; const B b; a.say(); b.say(); const A& aref = b; aref.say(); }řešení
bool transfer_item(account& account1, account& account2, const item& item) { // Nejdriv zamkneme oba ucty std::lock_guard<std::mutex> lg1(account1.mutex); std::lock_guard<std::mutex> lg2(account2.mutex); // A pak se pokusime prevest item z jednoho do druheho. // Ucet uz ho nemusi vlastnit, takze je potreba to zkontrolovat // znovu if (account1.contains(item)) { account1.remove(item); account2.add(item); return true; } return false; }řešení
std::vector<osoba>
dle příjmení, jména a věku osoby. [3b] #include <vector> #include <string> #include <algorithm> struct osoba { std::string prijmeni, jmeno; int vek; };Nezapomeňte, že
std::sort
není stabilní. std::vector
. Parametr in
je konstantní a s prvky typu double
, a parametr out je s prvky typu int. Funkce má za úkol vyprázdnit out
a převést do něj všechny prvky z in
. Pokud prvek z vektoru in
není celočíselný, a došlo by ke ztrátě dat, funkce vyhodí výjimku. Implementujte funkci tak, aby poskytla silnou záruku. [5b]