Bet*_*moo 3 c++ sorting struct functor
我试图在C++中对自定义结构的向量进行排序
struct Book{
public:int H,W,V,i;
};
Run Code Online (Sandbox Code Playgroud)
用一个简单的仿函数
class CompareHeight
{
public:
int operator() (Book lhs,Book rhs)
{
return lhs.H-rhs.H;
}
};
Run Code Online (Sandbox Code Playgroud)
在尝试时:
vector<Book> books(X);
.....
sort(books.begin(),books.end(), CompareHeight());
Run Code Online (Sandbox Code Playgroud)
它给我异常"无效的运算符<"
这个错误是什么意思?
谢谢
Mar*_*tos 11
sort期望一个返回的函数,bool如果lhs在rhs之前,则为true:
bool operator() (const Book& lhs, const Book& rhs)
{
return lhs.H < rhs.H;
}
Run Code Online (Sandbox Code Playgroud)
还要注意const Book&参数的更改,以避免复制.
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |