Website Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit015e79ec9407adbc387c176ca9406cadfe7db231 (patch)
Author
 Angel Dimitriev <achi_d@abv.bg>
2021-05-12 19:48:23 +0300
Committer
 GitHub <noreply@github.com>
2021-05-12 19:48:23 +0300
Files3e04b788f235991bc351e51e35a65e7dec13854f
Object-oriented_programming_FMI-015e79ec9407adbc387c176ca9406cadfe7db231.tar
Object-oriented_programming_FMI-015e79ec9407adbc387c176ca9406cadfe7db231.tar.gz
Object-oriented_programming_FMI-015e79ec9407adbc387c176ca9406cadfe7db231.zip
Parent42f59920cf5d300a54f3dae03911dccbd1a86eea (diff)
Update README.md
1 files changed, 46 insertions, 0 deletions
-rw-r--r--Sem. 10/README.md46
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
+}
+ ```