簡體   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