нет, вот я же написал, эта функция вполне себе шаблонная и сортирует массив фигур, как и интов
а если я захочу сортировать по определенному параметру: периметр, площадь, объем?) шутки шутками, а на бутылке больно сидеть с такими запросами
Компаратор можно передать кастомный последним параметром
в котором сделать что-то типо менюшки консольной?
тогда зависит от того, насколько вы перфеционист, но, скажем template <typename Shape, typename Comparator> void sort(std::vector<Shape> & shapes, Comparator&& comparator) { std::sort(shapes.begin(), shapes.end(), std::forward<Comparator>(comparator)); }
void sort(vector<Shape>& a, Comparator cmp) { std::sort(a.begin(), a.end(), cmp); } sort(vector<shapes>{...}, [](shape a, shape b) { return a.Size < b.Size });
Нет Это аналог перегрузки оператора <
вы же буквально std::sort используете в вашем примере ровно под ваши требования
да, при помощи лямбда, кое как с этим знаком, но мне кажется что я себе этим ноги прострелил
там всё хорошо, кроме того, как вы это пытаетесь делать
дальше вопрос ваших познаний: вы понимаете, что такое TypeErasure по типу std::function?
Обсуждают сегодня