Вы можете использовать std::sort
из <algorithm>
с лямбда-функцией, определяющей ваш предикат сортировки.
std::sort(animalvector.begin(),
animalvector.end(),
[](auto const& lhs, auto const& rhs)
{
return lhs->speed > rhs->speed;
});
Обратите внимание, что speed
либо должно быть public
, либо вам понадобится publi c функция получения. Если вы хотите добавить методы получения
class animal
{
public:
int GetHeight() const { return height; }
int GetSpeed() const { return speed; }
protected:
int height;
int speed;
};
, вы бы изменили лямбда, чтобы использовать эти методы получения
std::sort(animalvector.begin(),
animalvector.end(),
[](auto const& lhs, auto const& rhs)
{
return lhs->GetSpeed() > rhs->GetSpeed();
});