Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 10 / README.md
diff options
context:
space:
mode:
1 files changed, 0 insertions, 70 deletions
-rw-r--r--Sem. 10/README.md70
diff --git a/Sem. 10/README.md b/Sem. 10/README.md
deleted file mode 100644
index 40d6502..0000000
--- a/Sem. 10/README.md
+++ /dev/null
@@ -1,70 +0,0 @@
-## Шаблони
-Функция/клас, която работи не с променливи от някакъв дефиниран тип, а с абстрактни променливи, се нарича шаблонна функция/клас
-```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:**
-Релизирайте структурата от данни опашка. Опашката трябва да работи с **произволни типове**. След като е добавен един елемент в края на опашката, той ще може да бъде извлечен (премахнат) единствено след като бъдат премахнати всички елементи преди него в реда, в който са добавени.
-
-**Пример**:
- ```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
-}
- ```
- **Задача 2:**
- Създайте **шаблонна** опашка с 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
-}
- ```
-