1. Да се дефинира йерархия от контейнери с обща операция bool member(T const& x), която проверява дали даден елемент x се среща в контейнера. За целта да се дефинира базов клас Container<T> на класовете CList<T>, CStack<T> и CQueue<T>, които наследяват съответно LList<T>, Stack<T> и Queue<T>. Да се дефинира хетерогенен списък от контейнери. Да се провери дали даден елемент се среща в някой от елементите на хетерогенния списък.
  2. Да се разшири Container<T> с функцията от по-висок ред bool exists (condition<T> cond), която проверява дали в контейнера се среща елемент, отговарящ на условието cond, като condition е дефинирано като
    typedef bool (*condition)(T const&);
    Да се напише функция void filter(condition<T> cond), която изтрива от хетерогенния списък всички контейнери, които съдържат елемент, отговарящ на условието cond.
Последно модифициране: събота, 12 ноември 2011, 17:38