C++ struct sorting error
c++, functor, sorting, struct
Solution
`sort` expects a function that returns `bool`, which is true iff the lhs precedes the rhs:
bool operator() (const Book& lhs, const Book& rhs)
{
return lhs.H < rhs.H;
}
Also note the change to `const Book&` parameters, to avoid copying.
Problem
I am trying to sort a vector of custom struct in C++ ``` struct Book{ public:int H,W,V,i; }; ``` with a simple functor ``` class CompareHeight { public: int operator() (Book lhs,Book rhs) { return lhs.H-rhs.H; } }; ``` when trying : ``` vector<Book> books(X); ..... sort(books.begin(),books.end(), CompareHeight()); ``` it gives me exception "invalid operator <" What is the meaning of this error? Thanks