diff options
1 files changed, 46 insertions, 0 deletions
| -rw-r--r-- | Sem. 10/README.md | 46 |
diff --git a/Sem. 10/README.md b/Sem. 10/README.md index e69de29..87266f6 100644 --- a/Sem. 10/README.md +++ b/Sem. 10/README.md @@ -0,0 +1,46 @@ +## Шаблони
+Функция/клас, която работи не с променливи от някакъв дефиниран тип, а с абстрактни променливи, се нарича шаблонна функция/клас
+```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
+}
+ ```
|
