11.6 自定義比較函式

greater() 解決了「由大到小」,但排序規則千奇百怪:按絕對值排、按個位數排、偶數優先……這些 sort 都做得到——把你自己寫的比較函式當第三個參數傳進去。

比較函式的規格:

  • 恰有兩個參數,型態就是被排序元素的型態;回傳 bool。
  • 語意只有一句話:cmp(x, y) 回答「x 是否必須排在 y 前面」。
    • 必須在前 → 回傳 true。
    • x 與 y 相等,或 x 該排在後面 → 回傳 false。

例如「由大到小」的比較函式,用這句話翻譯:x 比 y 大時,x 必須在前——

登入後即可閱讀完整內容

語法書免費開放給所有 AACPOJ 帳號,註冊只要一分鐘。