繁体   English   中英

C ++ struct排序错误

[英]C++ struct sorting error

我试图在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());

它给我异常“无效的运算符<”

这个错误是什么意思?

谢谢

sort需要一个返回bool的函数,如果lhs在rhs之前,则为true:

bool operator() (const Book& lhs, const Book& rhs)
{
    return lhs.H < rhs.H; 
}

另请注意对const Book& parameters的更改,以避免复制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM