Как получить индекс максимального элемента в векторе с умными указателями? C++

У меня есть вектор std::vectorstd::unique_ptr<IShape> и у IShape есть метод GetArea(), который возвращает площадь. Так вот есть ли в C++ какой-то алгоритм который позволит индекс элемента с максимальной площадью? Я пробовал через std::max_element с компроматором, но он конечно же не работает, тк как я понимаю уникальный указатель он на то и уникальный не может передаваться в функцию. код описанный выше


Ответы (1 шт):

Автор решения: HolyBlackCat

Поменять тип параметров компаратора на const std::unique_ptr<IShape> &.

→ Ссылка