diff options
1 files changed, 1 insertions, 70 deletions
| -rw-r--r-- | Sem. 09/README.md | 71 |
diff --git a/Sem. 09/README.md b/Sem. 09/README.md index 09c8652..3ec48cc 100644 --- a/Sem. 09/README.md +++ b/Sem. 09/README.md @@ -148,32 +148,7 @@ int main() Масивът ще се изтрие (и ще се изтрият обектите), когато се извика delete[] върху него. -## Шаблони -Функция/клас, която работи не с променливи от някакъв дефиниран тип, а с абстрактни променливи, се нарича шаблонна функция/клас -```c++ -#include <iostream> -using namespace std; - -template <class T> -T sum(T a, T b) -{ - return a + b; -} - -int main() -{ - int a = 4; - int b = 9; - cout << sum<int>(a, b) << endl; - double c = 3.14; - double d = 4.5; - cout << sum<double>(c,d) << endl; - - return 0; -} -``` -Компилаторът генерира т. нар. шаблонна функция, като замества параметрите на шаблона с типовете на съответните фактически параметри. ## Задачи **Задача 1:** @@ -212,26 +187,8 @@ int main() - Студент може да има най-много 20 оценки. - Студентите имат имена с макс дължина 30 символа. -**Задача 2:** -Релизирайте структурата от данни опашка. Опашката трябва да работи с **произволни типове**. След като е добавен един елемент в края на опашката, той ще може да бъде извлечен (премахнат) единствено след като бъдат премахнати всички елементи преди него в реда, в който са добавени. - -**Пример**: - ```c++ -int main() -{ - quene<int> q; - q.enqueue(3); - q.enqueue(5); - q.enqueue(10); - - cout << q.dequeue() << endl; //3 - cout << q.dequeue() << endl; //5 - cout << q.dequeue() << endl; //10 - cout << q.isEmpty() << endl; //1 -} - ``` - **Задача 3:** + **Задача 2:** Релизирайте клас стринг, който ще се ползва за работа със символни низове. Стрингът трябва да има като минимум следния интерфейс: @@ -271,29 +228,3 @@ int main() s3 == s1; //false; } ``` - **Задача 4:** - Създайте **шаблонна** опашка с k приоритета. При взимане на елемент от опашката трябва да се връща най-отдавна добавения елемент от тези с най-висок приоритет. - - ```c++ -int main() -{ - kPriorityQueue<char> q(4); // 4 priorities - 0, 1, 2 и 3. - - q.enqueue('A',0): //adds A with lowest priority: 0 - q.enqueue('B',3); - q.enqueue('C',2); - q.enqueue('D',2); - q.enqueue('E',1); - - //q.enqueue('F', 5); //error! No such priority! - - q.dequeue(); // B - q.dequeue(); // C - q.dequeue(); // D - q.dequeue(); // E - q.dequeue(); // A -} - ``` - -**ВАЖНО!** Има промяна по реализацията на опашка от семинар. Добавена е "голямата четворка", от която очевидно има нужда в класа. -Ако някой е ползвал старата имплементация на опашката, да я замени с новата. |
