Я не уверен, на что вы жалуетесь:
std::sort(begin,end) // use operator<
std::sort(begin,end,order) // Where order is a functor
Так что заказ может быть:
- Функция
- Статическая функция-член
- Или объект, который ведет себя как функция.
У меня работает следующее:
class X
{
public: static bool diff(X const& lhs,X const& rhs) { return true;}
};
int main()
{
std::vector<X> a;
std::sort(a.begin(),a.end(),&X::diff);
}
Но если класс имеет некоторый естественный порядок, то почему бы просто не определить оператор <для класса. Это позволит вам получить доступ к членам и будет хорошо работать для большинства стандартных контейнеров / алгоритмов, которые должны определять порядок. </p>
class X
{
public: bool operator<(X const& rhs) const { return true;}
};
int main()
{
std::vector<X> a;
std::sort(a.begin(),a.end());
}