[問題] compare function object 的相關用法

作者: NaiveRed (天真紅)   2018-03-07 23:12:59
編譯器:
Mingw-w64
用 C++11 下去編
問題(Question):
標題可能下的不太好...
先講問題,看到幾個 priority_queue 在指定自己的比較方法時的寫法:
1. 這邊的 compare 只是 function
std::priority_queue<Node, std::vector<Node>, bool (*)(Node, Node)>
PQ(compare)
不太理解 bool (*)(Node, Node) 這個的寫法是什麼,有甚麼名稱嗎?
也可以直接用 lambda expression
priority_queue<node, vector<node>, bool (*)(const node &, const node &)>
PQ([](const node &a, const node &b) -> bool {
return a.v > b.v;
});
作者: loveflames (咕啾咕啾魔法陣)   2018-03-07 23:23:00
std::function是通用的函數指標
作者: PkmX (阿貓)   2018-03-08 01:55:00
C++11之後function的type可以寫成:auto (args) -> ret等價於C的 ret (args) 不過看起來好讀很多舉例:std::function<auto (int, int) -> bool>可以更進一步 template<typename T> using ptr = T*;這樣function pointer可以寫成ptr<auto (int) -> bool>

Links booklink

Contact Us: admin [ a t ] ucptt.com