c ,如何按照不同的要求呼叫標準庫sort函式排序?

時間 2021-05-11 23:24:19

1樓:Larry Sean

sort函式的第三個引數是可選的,可以填你自定義的比較函式,返回bool型別。這個比較函式會當成小於號用。

這樣就可以寫三個比較函式分別比較類中不同的值。如果從小到大就用小於號,從大到小就用大於號。

至於怎麼設計,怎麼選擇排哪個,判斷一下調不同的函式就好了。

好了,道理都講清楚了,加油 :P

2樓:lanceryou

首先公開資料,sort(vec.begin(),vec.end(),(student l,student r));xx是你要排的資料

3樓:管清文

struct

student

;vector

>v;sort

(begin(v

),end(v

),(const

student&a

,const

student&b));

4樓:

class

MyCompare

bool

operator

()(class

student

left

,class

student

right

)private

:int

type;}

vector

student

>vecCache

;//////

sort

(vecCache

.begin

(),vecCache

.end

(),MyCompare(0

));sort

(vecCache

.begin

(),vecCache

.end

(),MyCompare(1

));sort

(vecCache

.begin

(),vecCache

.end

(),MyCompare(2

));應該類似這種吧, 不過student類應該封裝下取這個科目的函式或者 public出來.

C 的dll庫,採用動態呼叫更好還是靜態呼叫更好?

單純的淫 動態 shared library,從英文本面意思很明確了,如果你的dll還要給別的pe模組使用,你就用動態dll,這樣不用所有模組都各自包含乙個dll,大家公用乙個dll就行,反正用的時候loadlibrary一下就行。去如果確實就你自己的程式使用,就靜態吧,打包省事兒點。 井底的bee...

C 中,如何在標準庫的std string和常用庫(Qt,VC等)的QString之間進行選擇?

諸葛不亮 QString和std string根本是兩個東西 QString才是字串處理,內部同一編碼為Unicode,只要字串轉成QString就沒任何擔憂了 std string那個渣渣,只是個封裝成class的char陣列罷了 對照Qt頂多就是QByteArray,還沒那個好用 std str...

c 怎麼讓自己寫的庫像標準庫那樣只需include標頭檔案就可以使用而不需要把實現原始碼加入工程裡?

沒辦法像標準庫那樣。標準庫可以只include標頭檔案是因為編譯器會預設鏈結標準庫的實現。其它回答裡面說的header only library,是把實現也一起寫在標頭檔案裡面了。不需要另外的cpp而已。如果你的目的是讓庫方便使用,就做成header only library,或者退一步,提供乙個標...