Задача 1. Да се дефинира шаблон на структура TypedBuffer с две полета: ? Указател към динамичен масив със стойности от тип T ? Размер на масива в брой елементи Да се дефинират следните шаблони на функции за работа с типизирани буфери: 1. [подходящ тип] create ([подходящ тип] n, [подходящ тип] k): инициализира и връща нов буфер, състоящ се от n>0 на брой елемента, всеки със стойност k 2. [подходящ тип] append ([подходящ тип] a, [подходящ тип] b): “Залепя” елементите на буфера b към елементите на буфера a. Резултатът се получава в буфера a 3. [подходящ тип] concat ([подходящ тип] a, [подходящ тип] b): Създава и връща нов буфер, чиито елементи се получават от елементите на a, следвани от елементите на b 4. [подходящ тип] union ([подходящ тип] a, [подходящ тип] b): Реализира обединение на множествата на елементите на буферите a и b. Резултатът е нов буфер, в който всеки елемент от обединението се среща точно веднъж. Задача 2. Да се реализира клас SumAvgCalculator, който служи за изчисляване на сума и средно аритметично на поредица от цели числа. При създаване на обект от класа, съответната му поредица съдържа само едно число, което се подава като аргумент на конструктора. За класа да се реализират следните методи: 1. sum, който връща сумата на поредицата 2. add, добавящ число към поредицата 3. sub, добавящ число с отрицателен знак към поредицата 4. num, връщащ броя на числата в поредицата 5. average, връщащ средното аритметично на числата в поредицата. 6. оператори за събиране на редици (+) и (+=), събиращи две редици. Резултатната редица се състои от членовете на двете изходни редици !!! Функционалност извън тези методи, като например съхраняване на отделните числа от поредицата, не е необходима. (Решете задачата без да използвате динамична памет. В краен случай, ако не успеете да се сетите как, я направете с динамична памет) !!! Пример: SumAvgCalculator seq1 (10); seq1.add (10); seq1.sub (15); seq1.add (5); std::cout << seq.sum(); //->10 (10+10+5-15)