我想在C++中創建Edge
類的priority_queue
。使用比較器的自定義類的優先級隊列在C++中的構造函數的參數
對於這一點,我創建了edgeCompare
比較類,如下所示:
class edgeCompare{
public:
map<int, glm::mat4x4> * Qmap;
edgeCompare(const map<int, glm::mat4x4> & Qm){
* Qmap = Qm;
}
bool operator() (const Edge & e1, const Edge & e2) const{
// code that compares and returns corresponding bool
// OBS: in this function I use *Qmap
}
}
的事情是,你可以看到,我需要一個外部變量來進行比較。
一個priority_queue
通常被聲明爲:
priority_queue<Edge, vector<Edge>, edgeCompare> pq;
但在我而言,我需要構造edgeComparator
與我的變量Qmap
。
我該如何繼續?
非常感謝!
你是怎麼解決這個問題?我想做類似的事情。 – igon 2013-06-11 22:15:43