-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.cpp
83 lines (58 loc) · 3.05 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//Полюбин Арсений М8О-206Б-19
//Лабораторная работа №5
//Вариант 22 - пятиугольник и очередь
#include <iostream>
#include <algorithm>
#include "pentagon.hpp"
#include "NewIterator.hpp"
#include "NewQueue.hpp"
int main()
{
new_queue<Pentagon<int>> queu;
Pentagon<int> p0;
Pentagon<int> p1;
Pentagon<int> p2;
std::cout<< "Введите абсциссу и ординату вершины и длину основания пятиугольника\n";
std::cin >> p0.Cord.first >> p0.Cord.second >> p0.Base;
std::cout << "Введите абсциссу и ординату вершины и длину основания пятиугольника\n";
std::cin >> p1.Cord.first >> p1.Cord.second >> p1.Base;
std::cout << "Введите абсциссу и ординату вершины и длину основания пятиугольника\n";
std::cin >> p2.Cord.first >> p2.Cord.second >> p2.Base;
queu.push(p0);
queu.push(p1);
queu.push(p2);
std::cout << "\nочередь: \n";
std::for_each(queu.begin(), queu.end(), [](auto& figure){std::cout << figure;});
std::cout << "\nКоличество пятиугольников площадью меньше 50: \n" << std::count_if(queu.begin(), queu.end(), [](const Pentagon<int> &pen){ return (double)area(pen) < 50.0; }) << "\n";
Pentagon<int> del = queu.deletion(1);
std::cout << "\nочередь: ";
std::for_each(queu.begin(), queu.end(), [](auto& figure){std::cout << figure;});
auto iter = queu.begin();
++iter;
std::cout << "\nитератор № 1\n" << *iter;
queu.insert(iter, p0);
std::cout << "\nитератор № 2\n" << *iter;
queu.insert(iter, p1);
std::cout << "\nитератор № 3\n" << *iter;
std::cout << "\nочередь:\n";
std::for_each(queu.begin(), queu.end(), [](auto& figure){std::cout << figure;});
++iter;
std::cout << "\nитератор № 4\n" << *iter;
auto fig0 = queu.erase(iter);
std::cout << "\nочередь: ";
std::for_each(queu.begin(), queu.end(), [](auto& figure){std::cout << figure;});
std::cout << "\nитератор № 5\n" << *iter;
auto fig1 = queu.erase(iter);
std::cout << "\nКоличество пятиугольников площадью меньше 20: \n" << std::count_if(queu.begin(), queu.end(), [](const Pentagon<int> &pen){ return (double)area(pen) < 20.0; }) << "\n";
std::cout << "\nочередь:\n";
std::for_each(queu.begin(), queu.end(), [](auto& figure){std::cout << figure;});
std::cout << "\nитератор № 6\n" << *iter;
auto fig2 = queu.erase(iter);
std::cout << "\nУдаленные элементы:\n";
std::cout << fig0 << fig1 << fig2;
std::cout << "Удаление верхнего элемента очереди\n";
std::cout << queu.top();
std::cout << "\nочередь: \n";
std::for_each(queu.begin(), queu.end(), [](auto& figure){std::cout << figure;});
return 0;
}