From 015e79ec9407adbc387c176ca9406cadfe7db231 Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Wed, 12 May 2021 19:48:23 +0300 Subject: Update README.md --- Sem. 10/README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) 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 +using namespace std; + +template +T sum(T a, T b) +{ + return a + b; +} + +int main() +{ + int a = 4; + int b = 9; + cout << sum(a, b) << endl; + + double c = 3.14; + double d = 4.5; + cout << sum(c,d) << endl; + + return 0; +} +``` +Компилаторът генерира т. нар. шаблонна функция, като замества параметрите на шаблона с типовете на съответните фактически параметри. + +**Задача 1:** +Релизирайте структурата от данни опашка. Опашката трябва да работи с **произволни типове**. След като е добавен един елемент в края на опашката, той ще може да бъде извлечен (премахнат) единствено след като бъдат премахнати всички елементи преди него в реда, в който са добавени. + +**Пример**: + ```c++ +int main() +{ + quene 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 +} + ``` -- cgit v1.3.1-23-gd82d