Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- struct Partition
- {
- int ID;
- string name;
- bool alarm;
- float temperature;
- };
- // процедура для сортировки вектора по температуре по убыванию
- bool sortFunc_Temperature(const Partition &l, const Partition &r)
- {
- return l.temperature > r.temperature;
- }
- // процедура для поиска элемента по значению температуры в векторе, отсортированном по убыванию
- // полезна для нахождения одного элемента по значению температуры
- // в этом примере процедура пока не используется, т.к. берется только максимальное значение
- bool compareFunc_Temperature(const Partition &l, const float &val)
- {
- return l.temperature > val;
- }
- // процедура для сортировки вектора по тревоге (сначала true, потом false)
- bool sortFunc_Alarm(const Partition &l, const Partition &r)
- {
- return l.alarm > r.alarm; // исходим из того, что true > false
- }
- // процедура для поиска элемента по тревоге в векторе, отсортированном по значению (сначала true, потом false)
- // полезна для нахождения одного элемента по значению тревоги
- // в этом примере процедура пока не используется, т.к. берутся только первые значения с true
- bool compareFunc_Alarm(const Partition &l, const bool &val)
- {
- return l.alarm > val; // исходим из того, что true > false
- }
- int main()
- {
- vector<Partition> myVect = { {5, "FIVE", false, -40}, {3, "THREE", true, -10}, {9, "NINE", false, 15}, {7, "SEVEN", true, 0}, {2, "TWO", false, -5} };
- // надо будет задать 50000 элементов в цикле
- cout << endl;
- std::sort(myVect.begin(), myVect.end(), sortFunc_Temperature); // сортируем по температуре
- for (Partition &l : myVect)
- {
- cout << l.name.c_str() << endl;
- }
- cout << "Max temperature " << myVect.begin()->temperature << " for partition: " << myVect.begin()->name.c_str() << endl;
- // это для поиска раздела с конкретной температурой, пока не используем
- //vector<Partition>::iterator res;
- //res = std::lower_bound(myVect.begin(), myVect.end(), -10, compareFunc_Temperature);
- //cout << "Temperature -10: " << res->name.c_str() << endl;
- std::sort(myVect.begin(), myVect.end(), sortFunc_Alarm); // сортируем по тревоге
- vector<Partition>::iterator it;
- cout << "Alarmed partitions: " << endl;
- for (it = myVect.begin(); it != myVect.end() && it->alarm; it++)
- {
- cout << it->name.c_str() << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement