優先佇列自定義的注意點

2021-09-29 07:12:49 字數 631 閱讀 1343

自定義優先佇列結構的注意點:

1.優先佇列順序和自己定義的是反的,而且預設大根堆

2.需要自己定義順序的時候。1)需要寫出container,一般就是vector 2)寫比較器就是像自己這裡寫的這樣。

3.一般如果不是自定義結構的話,而且只需要改為小根堆,使用greater就行

比較器的例子:

struct cmp };

priority_queueint, pair<

int,

int>>

, vectorint, pair<

int,

int>>

>

, cmp> pq;

不是像其他定義乙個比較函式就行了。

省事使用greater就行:

priority_queueint, pair<

int,

int>>

, vectorint, pair<

int,

int>>

>

, greaterint, pair<

int,

int>>

>> pq;

//val, row, idx

自定義型別的優先佇列

當優先佇列不需要運用自定義型別時,直接寫priority queue即可。不過優先佇列預設是降序。如果要改成公升序的話還要變成下面形式 priority queue,greater q 預設是less 但是當需要用到自定義型別 如自己定義的結構體或者pair型別等 是,需要自己寫比較函式或者過載 的...

C 優先佇列自定義排序總結

一 優先隊的使用 二 基本資料型別 priority queue int q 預設是從大到小 priority queue int,vector int less int q 從大到小排序 priority queue int,vector int greater int q 從小到大排序 三 自定...

iOS 自定義Set方法,注意點

之前一直以為set方法就是為了,讓外部呼叫提供外部介面用的,不過在最近沃爾瑪專案中,我發現我錯了,我錯得特別離譜,以至於不仔細看我都被蒙過去了。首先我們明確一點set方法,如果我們不自定義set方法,那麼我們屬性會自動實現set和get方法而且注意而且會生成例項變數 like property no...