我正在尝试对 C++ 中的自定义结构向量进行排序
struct Book{
public:int H,W,V,i;
};
用一个简单的函子
class CompareHeight
{
public:
int operator() (Book lhs,Book rhs)
{
return lhs.H-rhs.H;
}
};
尝试时:
vector<Book> books(X);
.....
sort(books.begin(),books.end(), CompareHeight());
它给了我异常“无效的运算符
这个错误是什么意思?
Thanks
sort
期望有一个返回的函数bool
,当且仅当左侧先于右侧时,这是正确的:
bool operator() (const Book& lhs, const Book& rhs)
{
return lhs.H < rhs.H;
}
另请注意更改为const Book&
参数,避免复制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)