diff --git a/LW1.2/main.cpp b/LW1.2/main.cpp index a1c82cd96e1a0cf7208a9fae5ae7b77102618767..9a0706e579526656a0cc2f6587e18220bf5c42d0 100644 --- a/LW1.2/main.cpp +++ b/LW1.2/main.cpp @@ -50,12 +50,14 @@ void Protection_task(MeshLoader& MyKE) std::cin >> id; std::set Container = MyKE.Get_Elements_by_ID_area(id); - //!!! Для поиска минимального элемента есть ranges::min_element, принимающий бинарный предикат,->ИСПРАВЛЕНО - //!!! в данном случае для сревнения площадей->ИСПРАВЛЕНО - std::vector SquareElements; std::ranges::for_each(Container, [&](auto& elem) {SquareElements.push_back(square(MyKE, elem)); }); + auto IterResult = std::ranges::min_element(SquareElements); + + ///!!! Для поиска есть min_element. Что мешает сделать бинарный предикат, который сравнивает объекты самих элементов + ///!!! и зачем делать отдельный контейнер??? + std::cout << *(std::next(Container.begin(), std::ranges::distance(SquareElements.begin(), IterResult))); }