Где я ошибся
Функция сравнения должна иметь подпись, подобную следующей:
bool cmp(const Type1 &a, const Type2 &b);
Поэтому ваша функция сравненияможет выглядеть так:
bool cmp(std::string const& s1, std::string const& s2)
{
return s1.length() > s2.length();
}
это сработало, пожалуйста, укажите причину, по которой это сработало
Это работает, потому что std::sort
будет принимать 2 векторных элемента и отправлять ихфункция сравнения на каждом ходу.Вектор состоит из std::string
s, вы можете передать их по значению или по ссылке, или по ссылке const
, но вы не можете передавать указатели, как вы пытались (для этого вам понадобится std::vector<std::string *>
, немного бессмысленно tbh)