2014-04-17 35 views
1

我有一個關於使用類對象排序deque的問題。所以我有一個名爲「rq」的deque,它包含多種類型的數據。我想通過比較TAU值對排序進行排序。然而,當我嘗試對deque進行排序時,我不斷收到錯誤的編譯器錯誤。下面是我試圖做的比較TAU值和排序雙端隊列的功能。我將如何去解決這個問題?使用類對象對deque進行排序

deque<system>rq 
//and so on 
struct tauSort 
{ 
    bool operator()(system &a, system &b) 
    {    
     return a.getTau() < b.getTau();   
    } 
} 

//Blah Blah 
system sorting; 
sort(rq.begin(), rq.end(), sorting) 
+0

你錯過了很多semicola那裏。 –

+0

他也失蹤了'const' –

回答

2

此:

system sorting; 

應該是這樣的:

tauSort sorting; 

,因爲你想通過分揀仿函數,而不是一個system對象。你也在sort聲明的末尾忘記了分號。

你也可以簡單地做:

sort(rq.begin(), rq.end(), tauSort()); 

更何況,你可以通過不斷引用你的函數傳遞system S,因爲你並不需要修改它們。而且最好還是讓operator()爲const:

bool operator()(system const& a, system const& b) const { … } 
+0

@ juanchopanza,對吧。錯過了,謝謝。 – Shoe

+0

謝謝你的工作!我非常欣賞這個輸入! – user3545874

相關問題