在類中定義sort的比較函式

2021-07-25 16:07:46 字數 598 閱讀 6019

我宣告了乙個類,類中成員函式呼叫了二維vector引數:candidate_set,**如下:

class staridentify

;

公升序函式定義如下:

bool staridentify::lesssort (vector

a,vector

b)

想在函式identify_basis_pair中呼叫vector的比較函式

sort(candidate_set.begin(),candidate_set.end(),lesssort);
但編譯會出錯,提示lesssort缺少兩個引數。

解決方式如下

宣告為靜態成員函式:

class staridentify

;

這樣呼叫就可以了:

sort(candidate_set.begin(),candidate_set.end(),staridentify::lesssort);
相關帖子

如何自定義sort函式中的比較函式

參考鏈結 題目描述 輸入乙個正整數陣列,把陣列裡所有數字拼接起來排成乙個數,列印能拼接出的所有數字中最小的乙個。例如輸入陣列,則列印出這三個數字能排成的最小數字為321323。思路 自定義比較器,若a b b a則a b,即 3 23 23 3 則3 23,並且我們希望在排序的時候將23排在3的前面...

理解sort中的比較函式

sort 方法是陣列自帶的一種排序方法,為了實現排序sort方法會預設呼叫每個陣列項的tostring轉型方法 然後比較得到的字串 sort方法接收乙個比較函式,比較函式有兩個引數,如果第乙個引數應該位於第二個引數之前則返回負數,如果相等返回0,如果第乙個引數應該位於第二個引數之後則返回正數 1.當...

C 中sort的比較函式寫法

c 中sort的比較函式寫法,有需要的朋友可以參考下。定義排序函式 方法1 宣告外部比較函式 bool less const student s1,const student s2 std sort sutvector.begin stuvector.end less 注意 比較函式必須寫在類外部 ...